一、Python常用文件操作函数
1.read() 将文件内容作为一个大的字符串全部读出来
2.readline() 读取文件中的一行内容
3.readlines() 将文件内容作为一个大的列表全部读出来,每个成员是文件中的某一行
4.write() 将字符串写入文件
5.writelines(list) 将列表写入文件
6.close() 文件关闭
7.tell() 当前游标的位置
8.seek(offset[,where]) 把文件指针移动到相对于where的offset位置,where为0表示文件开始处,这是默认值;1表示当前位置;2表示文件结尾
9.flush() 刷新输出缓存,把缓冲区的内容写入硬盘
10.truncate([size]) 截取文件,使文件大小为size
二、读操作举例
当前test.txt内容如下:
1.png
print fp.tell()
0
fp.readline()
'aaaaa\n'
print fp.tell()
7
fp.seek(0) #将鼠标指针移动至文件开始处
print fp.tell()
0
02.png
注:fp.seek(-3,1),1表示当前位置,相对于当前位置再往前移动3位,换行符占2个位置。当前鼠标位置在aaaa\n之后,往前移动3位到
03.png
,所以当前鼠标位置在4。
读操作完整代码:
三、写操作举例
fp=open("E:/test2.txt",'w') #首先会创建一个test2.txt文件(以w方式打开,如没有该文件会自动创建。W方式打开注意:以写方式打开文件,会清空原有内容,进行写入)
05.png 06.png
四、truncate函数举例
fp=open("E:/test2.txt",'a')#以追加方式打开,否则会清空原始内容
fp.truncate(2)
fp.close()
test2.txt内容如下:
07.png
五、Python flush()刷新缓冲区
一般的文件流操作都包含缓冲机制,write方法并不直接将数据写入文件,而是先写入内存中特定的缓冲区。flush方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区。
08.png
说明:这时“ddddd”没有写入到test.txt中,只写到了缓冲区。
让其立即写入,应用flush()函数。
fp.flush()
完整代码如下:
10.png附:如何向文件中写入数据
1、 文件存在缓冲区中,能看到的话,应用close()函数将文件关闭。
2、 立即将文件写入文件中,应用flush()函数刷新缓冲区。
知识拓展:
为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:
try:
f = open('D:/zcxtest/test.txt', 'r')
print f.read()
finally:
if f:
f.close()
但是每次都这么写实在太繁琐,Python引入了with语句来自动帮我们调用close()方法:
with open('D:/zcxtest/test.txt', 'r') as f:
#Windows的路径分隔符\与代码中的/要加以区别
print f.read()
with open('D:/zcxtest/test.txt','w') as f:
f.write('Hello,world!')
代码更加简洁,并且不必调用f.close()方法。with...as语法是用来代替传统的try...finally语法的。 所以,使用with语句操作文件IO是个好习惯。
with...as详细介绍点击
网友评论