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")
我想打开一个 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")