Python清空文件,读取替换回写失败

我写了一个函数,先把文件内容读取到,然后清空文件内容,然后替换读取的内容个别关键字,然后回写文件,但是发现不生效呢,具体代码如下:
def modify_file():
with open('type.txt', "r+") as f:
read_data = f.read()
f.truncate() #清空文件
f.write(read_data.replace('string', 'int'))
执行上面这个函数,它会把内容追加进去,而不是替换, f.truncate()没起作用,应该怎么写才可以呢?
已邀请:

空心菜 - 无分享不快乐 助力技术开源分享 运维一枚

赞同来自: being

主要是因为默认Python读写文件,默认是从最后一行开始的,所以你需要先把游标定位到最开始,然后再清空,具体代码修改为如下:
def modify_file():
with open('type.txt', "r+") as f:
read_data = f.read()
f.seek(0) # 移动游标
f.truncate() #清空文件
f.write(read_data.replace('string', 'int'))

要回复问题请先登录注册