在PC上查找文件并替换字符串将删除整个文件

时间:2014-08-18 02:38:59

标签: python python-2.6

我需要在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

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:3)

我测试了你的代码,只用了一个小bug就可以了。

以下一行:

line = line.replace(textToSearch, textToReplace)

应替换为:

line = line.strip().replace(textToSearch, textToReplace)

否则每行都会附加额外的newline - 这也可能是您找不到替代品的原因(因为您预计他们会有不同的(原创)行数)