打开文件的模式:
#读模式 r 打开不存在的文件会报错、不能写
#写模式 w #1、打开不存在的文件,会新建一个文件,会清空原有文件
# 2、不能读
#追加模式 a #1、打开不存在的文件,会新建 #2、不能读
#读写模式 r+ 1、能写
2、打开不存在文件的时候会报错
#写读模式 w+
1、能读
2、读不到内容,因为w先把文件内容清空
#追加读模式 a+
1、能读
2、能不能读到内容,读不到内容
f.seek(0)
你直接循环文件对象,每次取的就是文件里面的每一行
for line in f:
print(line)
文件操作方法:
f = open('file.txt','r+',encoding='utf-8')#encoding参数可以指定文件的编码
f.readline()#读一行
f.readable()#判断文件是否可读
fr.writable()#判断文件是否可写
fr.encoding#打印文件的编码
f.read()#读取所有内容,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
f.readlines()#读取所有文件内容,返回一个list,元素是每行的数据,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
f.tell()#获取当前文件的指针指向
f.seek(0)#把当前文件指针指向哪
f.write('爱情证书')#写入内容
f.fulsh()#写入文件后,立即从内存中把数据写到磁盘中
f.truncate()#清空文件内容
f.writelines(['爱情证书','孙燕姿'])#将一个列表写入文件中
f.close()关闭文件
with:
with open('hhh2.txt') as fr,open('hhh2-bak','w') as fw:
for line in fr:
fw.write(line)
修改文件内容:
import os
with open('users') as fr,open('.users','w',encoding='utf-8') as fw:
for line in fr:#从需要修改的文件里面读
new_line = line.replace('java','修改文件')
fw.write(new_line)
os.remove('users')
os.rename('.users','users')