在PC上找到一个文件,替换一个字符串会删除整个文件

2024-09-25 00:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在pc上查找一个特定的文件,并替换该文件中所有重复字符串的一部分。我正在使用Python2.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

有什么建议吗?你知道吗

谢谢


Tags: 文件字符串inimportforoslineroot
1条回答
网友
1楼 · 发布于 2024-09-25 00:24:36

我测试了你的代码,它只运行了一个小错误:

以下行:

line = line.replace(textToSearch, textToReplace)

应替换为:

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

否则,每行都会附加一个额外的newline-这也可能是您找不到替换项的原因(因为您希望它们位于不同的(原始)行号中)

相关问题 更多 >