在Python中读取和覆盖文件

目前我使用的是:

f=open(文件名“r+”)
text=f.read()
text=re.sub('foobar','bar',text)
f、 搜索(0)
f、 书写(文本)
f、 关闭()

但问题是旧文件比新文件大。因此,我得到了一个新文件,它的末尾有旧文件的一部分

如果您不想关闭并重新打开该文件,为了避免竞争条件,您可以截断它:

f=open(文件名“r+”)
text=f.read()
text=re.sub('foobar','bar',text)
f、 搜索(0)
f、 书写(文本)
f、 截断()
f、 关闭()

使用open作为上下文管理器,该功能可能会更干净、更安全,即使出现错误,也会关闭文件处理程序

打开(文件名为“r+”)作为f的

:
text=f.read()
text=re.sub('foobar','bar',text)
f、 搜索(0)
f、 书写(文本)
f、 截断()

发表评论