修改文件内容 python

第一种方法,简单直接粗暴的,缺点就是如果文件非常大时,把所有内容都读出来,会非常占用内存:

f = open('a.txt','a+',encoding='utf-8')  # 不能用w+,用w+直接给文件清空了,读不出来内容了
f.seek(0)
result = f.read()
new_result = result.replace('abc','ABC')
f.seek(0)
f.truncate() #清空文件内容
f.write(new_result)
f.close()

第二种方法,读模式打开一个文件1,写模式打开一个文件2,逐条处理文件1中的内容,再逐条写入文件2:

import os
f1 = open('a.txt',encoding='utf-8')
f2 = open('a2.txt','w',encoding='utf-8')
for line in f1:
    new_line = line.replace('abc','ABC')
    f2.write(new_line)
f1.close()
f2.close()
os.remove('a.txt')
os.rename('a2.txt','a.txt')

第二种方法可以简化为下面的写法:

import os
with open('a.txt',encoding='utf-8') as f1,open('a2.txt','w',encoding='utf-8') as f2:
    for line in f1:
        new_line = line.replace('ABC', 'abc')
        f2.write(new_line)
os.remove('a.txt')
os.rename('a2.txt','a.txt')

上述的方法,如果是比较小的文件修改时,用第一种就可以,大文件就需要用第二种方法了

posted @ 2024-04-24 17:56  cindylpp  阅读(248)  评论(0编辑  收藏  举报