我需要在PC上查找特定文件,并替换文件中字符串的所有重复的一部分。我使用的是Python 2.6。该脚本找到该文件但不是替换该字符串的所有实例,而只是将文件擦除空白。知道为什么吗?
import os
from os.path import join
import fileinput
lookfor = "particular.txt"
textToSearch = "Alonglineoftext@thefile"
textToReplace = "Alonglineoftext@withnewtextinthefile"
for root, dirs, files in os.walk('C:\\'):
print "searching", root
if lookfor in files:
for line in fileinput.FileInput((join(root, lookfor)),inplace=1):
line = line.replace(textToSearch, textToReplace)
print line
break
有什么建议吗?
由于
答案 0 :(得分:3)
我测试了你的代码,只用了一个小bug就可以了。
以下一行:
line = line.replace(textToSearch, textToReplace)
应替换为:
line = line.strip().replace(textToSearch, textToReplace)
否则每行都会附加额外的newline
- 这也可能是您找不到替代品的原因(因为您预计他们会有不同的(原创)行数)