繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM