如何通过python替换单词?

如何通过python替换单词?,python,file,replace,Python,File,Replace,有一个文本文件,我想通过python将一个单词替换为另一个单词, 我是这样做的: demo.py def modify_text(): with open('test.txt', "r+") as f: read_data = f.read() f.truncate() f.write(read_data.replace('apple', 'pear')) 运行上面的函数,它会将内容附加到test.txt,原始内容仍然存在,f.trun

有一个文本文件,我想通过python将一个单词替换为另一个单词,
我是这样做的:

demo.py

def modify_text():
    with open('test.txt', "r+") as f:
        read_data = f.read()
        f.truncate() 
        f.write(read_data.replace('apple', 'pear'))
运行上面的函数,它会将内容附加到
test.txt
,原始内容仍然存在,
f.truncate()
不起作用,我想删除原始内容,怎么做?

采用一个可选的大小参数,默认为当前位置,即文件的末尾,因为你刚刚读了全部。因此,您实际上是将文件截断为其当前大小(这几乎不起任何作用),然后追加替换的数据。应将其截断为空文件:

def modify_text():
    with open('test.txt', "r+") as f:
        read_data = f.read()
        f.truncate(0) 
        # Here ----^
        f.write(read_data.replace('apple', 'pear'))
获取一个可选的大小参数,该参数默认为当前位置,即文件的结尾,因为您只需读取所有文件。因此,您实际上是将文件截断为其当前大小(这几乎不起任何作用),然后追加替换的数据。应将其截断为空文件:

def modify_text():
    with open('test.txt', "r+") as f:
        read_data = f.read()
        f.truncate(0) 
        # Here ----^
        f.write(read_data.replace('apple', 'pear'))

test.txt
的内容更改为
0000 0000….
,全部为
0000
测试.txt的内容更改为
0000 0000….
,全部为
0000