1、对文件内容的循环展示
1)先定义一个文件对象
f = open('一朵丁香花',encoding = 'utf-8')
2)直接循环文件对象,每次循环时,就是取每一行的数据
for line in f:
print('line:',line)
运行结果:
①先查看下文本文件:
②查看运行结果:
2、文件的高效读写
1)open的方式
fw = open('wangmd','w') #用写模式,打开wangmd这个文件
fw.write('lalala') #缓冲区
fw.flush() #将缓冲区里面的数据立即写到磁盘上
fw.close() #关闭文件
运行结果:
2)with的方式
with open('wangmd','w') as fw: #用with的方式打开文件
fw.write('xxx') #写入xxx
运行结果:
两种方式的对比:
利用open打开文件,每次执行完open之后,需要执行close操作关闭文件。而with的话,执行完open后,会自动关闭文件,不需要再加上close操作。
3、将文件中的内容进行替换
方法一:简单粗暴,弊处:只适用于内容较少的文件,内容较多效率会低
1、先获取到文件里面所有的内容
2、修改内容
3、清空原来文件里面的内容
4、重新写入
1)获取到文件里面的内容
f = open('userinfo','a+') #打开userinfo文件
f.seek(0) #将文件指针挪到最前面
all_data = f.read() #读取文件中的信息
2)修改内容
new_data = all_data.replace('aaa','bbb') #将文件中的aaa替换为bbb
f.seek(0)
3)清空原来文件里面的内容
f.truncate() #清空文件内容
4)重新写入
f.write(new_data)
f.flush()
f.close()
方法二:高效的处理方式
1、先打开原文件,再打开一个空文件
2、循环处理原来文件里面的每一行数据,处理完之后,写到新文件里面
3、把原来的文件删除,将新闻界的名字改成原来的
import os #引入os
with open('aaa',encoding = 'utf-8') as fr, open('.aaa','w',encoding = 'utf-8') as fw:
#用读模式打开原文件,用写模式打开新文件
for line in fr:
line = line.lstrip() #去掉左边的空行
if line: #判断这一行是否有数据
line = line.replace('aaa','bbb') #将文件中的aaa全部替换为bbb
fw.write(line) #写到新文件中
os.remove('aaa') #删除原来的文件
os.rename('.aaa','aaa') #将新文件重命名