Python 文件操作(一)
一、注意事项
A.能调用方法的一定是对象
B.文件的操作流程:
1. 打开文件,得到文件句柄并赋值给一个变量
2. 通过句柄对文件进行操作
3. 关闭文件
二、操作实现方法
'''
文件名:小双双
文件内容如下:
昨夜寒蝉不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松饰老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
'''
1.
 f = open('小双双', 'r')
 print(f.readline().strip())  # 读取文件第一行内容
 # 执行第二次的时候读取第二行内容,因为第一次读取完成后自动把光标放到了第一行末尾
 print(f.readline().strip()) 
>>> 昨夜寒蝉不住鸣。
惊回千里梦,已三更。
2.
 f = open('小双双', 'r')
 print(f.readlines()) #读取所有内容,按行放到列表中
 f.close()
>>> ['昨夜寒蝉不住鸣。\n', '惊回千里梦,已三更。\n', '起来独自绕阶行。\n', '人悄悄,帘外月胧明。\n',
'白首为功名,旧山松饰老,阻归程。\n','欲将心事付瑶琴。\n', '知音少,弦断有谁听。']
3.
# 逐行打印文件内容
f = open('小双双', 'r') for n in f.readlines():
print(n.strip())
f.close()
>>>昨夜寒蝉不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松饰老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。 4.
# 在第3行后添加一行字符串
f = open('小双双', 'r')
data = f.readlines()
f.close()
number = 0 for n in data: # 逐行打印文件内容
if number == 3:
n = ''.join((n.strip(),'\n小可爱')) #字符串拼接用.join(),且其只能接收一个参数
print(n.strip())
number += 1
>>>昨夜寒蝉不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
小可爱
白首为功名,旧山松饰老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
5.
 f = open('小双双', 'r')
 print(f.tell())  #显示光标此时的位置
 for n in f:  #for内部将f对象做成一个迭代器,用一个取一个
     print(n.strip())
 print(f.tell())
>>>0
昨夜寒蝉不住鸣。
惊回千里梦,已三更。
起来独自绕阶行。
人悄悄,帘外月胧明。
白首为功名,旧山松饰老,阻归程。
欲将心事付瑶琴。
知音少,弦断有谁听。
147 6.
 f = open('小双双', 'r')
 # gbk编码一个中文占两位
 print(f.tell())   #显示光标此时的位置
 print(f.read(4))
 print(f.tell())
>>>0
昨夜寒蝉
8 7.
 f = open('小双双', 'r')
 # gbk编码一个中文占两位
 print(f.read(4))
 print(f.tell())#显示光标此时的位置
 f.seek(4)   # 调节光标的位置
 print(f.read(4))
>>>昨夜寒蝉
8
寒蝉不住 8.
 f = open('小双双', 'a')
 print(f.isatty()) # 判断是否与终端设备相关联,是返回True
 f = open('小双双', 'a')
 #数据截断,在‘a’模式下截取原有数据的前6位,在‘w’模式下格式化文件
 f.truncate(6) 
9.'a+' 'w+' 'r+' 模式
f = open('小双双', 'w+')  #w+模式,执行该语句原文件格式化
print(f.readline())  #所以执行该语句输出为空
f.write('小可爱')    #重新写入字符
print(f.readline())   #再次读取还为空,因为上句操作完成后光标移到了最后
f.seek(0)  # 调整光标位置
print(f.readline())
f.close()
>>>
小可爱
 f = open('小双双', 'r+')  #r+模式
 print(f.readline())  # 输出原文件内容,
 f.write('小可爱')    #在原文件内容的后面接着写入字符
 print(f.readline())  #读取为空,因为上句写操作完成后光标移到了最后
 f.seek(0)  # 调整光标位置到0
 print(f.readline())
 f.close()
>>>小可爱 小可爱小可爱
 f = open('小双双', 'a+')  #a+模式,追加内容;语句执行完光标到最后位置,
 print(f.readline())  # 输出为空,
 f.write('小可爱')    #在原文件内容的后面追加内容
 print(f.readline())  #读取为空,因为上句写操作完成后光标移到了最后
 f.seek(0)  # 调整光标位置到0
 print(f.readline())  #输出现有内容
 f.close()
>>>
小可爱小可爱小可爱 三、文件的安全打开方式:
 with open('小双双', 'r') as f:  # with方式打开文件,后面不需要关闭文件。推荐文件操作使用with
 # with同时管理多个文件对象
 with open('小双双', 'r') as f_read, open('小双双', 'w') as f_write:
     for line in f_read:
         f_write.write(line)
Python 文件操作(一)的更多相关文章
- Python基础篇【第2篇】: Python文件操作
		
Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...
 - [Python学习笔记][第七章Python文件操作]
		
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
 - Python文件操作与函数目录
		
文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ...
 - 初学Python——文件操作第二篇
		
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...
 - day8.python文件操作
		
打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...
 - 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()
		
嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ...
 - Python之路Python文件操作
		
Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...
 - python 文件操作 r  w  a
		
python基础-文件操作 一.文件操作 对文件操作的流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件时,需要指定文件路径和以何等方式打开文件, ...
 - Python:文件操作技巧(File operation)(转)
		
Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python # -*- coding: utf8 -*- spath = " D:/dow ...
 - 小学生都能学会的python(文件操作)
		
小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...
 
随机推荐
- Luogu P4889 kls与flag 【思维/排序】By cellur925
			
题目传送门 这题真的一点也不难qwq.只要想出来就没有什么代码难度的qwq. 每个竹竿只可能向左倒或向右倒,把这两种情况都存在数组中,将数组排序,就可以知道最后落在同一位置的有多少竹竿.就可以知道落在 ...
 - c++,类的对象作为形参时一定会调用复制构造函数吗?
			
c++,类的对象作为形参时一定会调用复制构造函数吗? 答:如果参数是引用传递,则不会调用任何构造函数:如果是按值传递,则调用复制构造函数,按参数的值构造一个临时对象,这个临时对象仅仅在函数执行是存在, ...
 - 两边是线 ,中间是文字 的CSS写法 而且还是自适应的
 - c#学习系列之关键字where
			
where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量. 1.接口约束. 例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就 ...
 - jquery选择器 选择除当前点击元素外所有的元素
			
问题: 多个select选择,如果已选择某些value ,该value不可再选 思路: 点击当前元素,js列出除当前元素外所有的元素 当前解决办法: function symbolDefine(ob ...
 - 二分图匹配 + 构造  E. Arpa’s overnight party and Mehrdad’s silent entering
			
http://codeforces.com/contest/742/problem/E 跪着看题解后才会的. 对于任何一对BF[i]和GF[i] 连接了一条边后,那么他们和隔壁都是不会有边相连的了,这 ...
 - json数组某个数值对应渲染
			
当你统计某一年的某个值它对应的月份总数时,后台没有直接处理好,某个月对应某个值,这样会增加统计的负担,但当数据时这样的时候,在angularjs中时不能直接引用的. "data": ...
 - webuploader上传工具
			
http://fex.baidu.com/webuploader/getting-started.html#显示用户选择 Html部分 首先准备dom结构,包含存放文件信息的容器.选择按钮和上传按钮三 ...
 - System.currentTimeMillis()与日期之间的相互转换
			
System.currentTimeMillis()与日期 之间是可以相互转换的,大多数Android开发者都知道 通过 SimpleDateFormat dateformat = new Simpl ...
 - Python3简明教程(二)——  变量和数据类型
			
关键字和标识符 下列的标识符是Python3的关键字,并且不能用于通常的标识符.关键字必须严格按照下面的拼写: False def if raise None del import return Tr ...