一,对文件进行操作的流程:
第一,建立文件对象。
第二,调用文件方法进行操作。
第三,不要忘了关闭文件。(文件不关闭的情况下,内容会放在缓存,虽然Python会在最后自动把内容读到磁盘,但为了以防万一,要养成关闭文件的习惯)
eg:f = open(‘1,txt‘,encoding =‘utf-8‘)
print(f.read())
f.close()
二,不同模式打开文件的完全列表:
注:只要沾上r,文件不存在的时候,打开都会报错
只要沾上w,把文件内容清空
不同模式及不同模式下的指针位置:
三,文件操作方法
f.seek(n) #查看光标定位
f.tell() #查看当前文件中指针的位置
f.truncate() #清空文件内容
f = open(‘file1,txt‘,encoding =‘utf-8‘)
print(f.tell()) #光标默认在起始位置
f.seek(10) #把光标定位到第10个字符之后
print(f.tell()) #输出10
f.close()
常用操作:
f = open(‘file.txt‘,‘a+‘)
f.seek(0) #把光标定位到起始位置
f.truncate() #清空文件内容
f.read() #读取文件里面所有的内容,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话会把内存撑爆
f.readline()#读取一行的内容
f.readlines()#读取所有文件内容,返回一个list,元素是每行的数据,大文件时不要用,
因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
f.readable()#判断文件是否可读
f.write() #写入内容 写的时候传入一个str类型
f.writelines() #str list dic 元组类型(写的时候传入一个可迭代的对象)
大文件时,读取文件高效的操作方法:
f = open(‘file.txt‘)
for line in f:
print(line)
这样的话,line就是每行文件的内容,读完一行的话,就会释放一行的内存
with使用:在操作文件的时候,经常忘了关闭文件,这样的就可以使用with,它会在使用完这个文件句柄之后,自动关闭该文件,使用方式如下:
with open(‘file.txt‘,‘r‘) as f:#打开一个文件,把这个文件的句柄付给f
for line in f:
print(line)
with open(‘file.txt‘) as fr,with open(‘file_bak‘,‘w‘) as fw: #这个是多文件的操作,打开两个文件,fr是读file.txt,fw是新建一个file_bak文件
for line in fr:#循环file.txt中的每一行
fw.write(line)#写到file_bak文件中