[英]Find a file on a PC and replace a string erases whole file
我需要在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
有什么建议么?
谢谢
我测试了您的代码,但只有一个小错误,效果很好:
下一行:
line = line.replace(textToSearch, textToReplace)
应替换为:
line = line.strip().replace(textToSearch, textToReplace)
否则,每行都会附加一个额外的newline
-这也可能是您找不到替换项的原因(因为您期望替换项使用不同的(原始)行号)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.