我如何覆盖python中的文本文件的特定部分

时间:2016-06-29 11:21:27

标签: python file

例如,如果在我的文本文件中,

爆炸,炸弹,鸭 吉姆,萨姆,丹尼尔

我希望在该文件中更改Daniel,这样就不会有任何其他因素受到影响。如何在不覆盖整个文件的情况下实现这一目标。

3 个答案:

答案 0 :(得分:1)

您可以使用fileinput

import fileinput

with fileinput.FileInput(fileToSearch, inplace=True, backup='.bak') as file:
    for line in file:
        print(line.replace(textToSearch, textToReplace), end='')
        #testToSearch:- Daniel 
        #textToReplace:- newName

或者如果您想让它更简单,只需从1个文件读取操作并将替换的内容写入第二个文件即可。然后覆盖它!

f1 = open('orgFile.txt', 'r')
f2 = open('orgFileRep.txt', 'w')
for line in f1:
    f2.write(line.replace('textToSearch', 'textToReplace'), end=' ')
f1.close()
f2.close()

答案 1 :(得分:-1)

如果你想先得到最后一个元素你需要read()方法,它只是从文件中读取然后拆分它(逗号是分隔符)并使用slice [:-1]

答案 2 :(得分:-1)

f = open('name.txt','rb+')
for line in f:
    line.replace('change','Daniel')
    f.write(line)
f.close()