python 打开文件并替换内容

python open a file and substitute the content

我想打开一个 txt 文件并将所有 "hello" 替换为 "love" 并保存,不要创建新文件。只需修改同一个txt文件中的内容即可。

我的代码只能在 "hello" 之后添加 "love",而不是替换它们。

有什么方法可以解决吗?

非常感谢

f = open("1.txt",'r+')
con = f.read()
f.write(re.sub(r'hello','Love',con))
f.close()

你读取文件后,文件指针在文件末尾;如果你那么写,你将追加到文件的末尾。你想要像

这样的东西
f = open("1.txt", "r")  # open; file pointer at start
con = f.read()          # read; file pointer at end
f.seek(0)               # rewind; file pointer at start
f.write(...)            # write; file pointer somewhere else
f.truncate()            # cut file off in case we didn't overwrite enough

您可以创建一个新文件并替换您在第一个文件中找到的所有单词,然后将它们写在第二个文件中。参见 How to search and replace text in a file using Python?

f1 = open('file1.txt', 'r')
f2 = open('file2.txt', 'w')
for line in f1:
    f2.write(line.replace('old_text', 'new_text'))
f1.close()
f2.close()

或者,您可以使用 fileinput

import fileinput
for line in fileinput.FileInput("file",inplace=1):
    line = line.replace("hello","love")