(急)用python将文件清空?

我现在在用python3批量的改一堆文件:比如把所有bbb改成a。
我写的是:

    with open(filename, 'r+', encoding='utf-8') as f:
        content = f.read()
        content = re.sub('bbb', 'a', content)

        f.truncate()//我上网找的说这个是清空文件?
        f.seek(0, 0)
        f.write(content)

但是会有问题:
原文件:bbb
新文件:abb

加了truncate也没有清除。
由于r+打开是覆盖着写,就变成这样了
怎么样才能把它改成a

急!求救啊。。。

阅读 2.9k
1 个回答
with open('a.txt', 'r+') as f:
    content = f.read().replace('bbb', 'a')
    f.seek(0)
    f.write(content)

#如果你要指定编码格式,应该这样写
import codecs
with codecs.open('a.txt', 'r+', encoding='utf-8') as f:
    content = f.read().replace('bbb', 'a')
    f.seek(0)
    f.write(content)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题