我是 python 新手。
我必须搜索目录并找到其中包含字符串 kyle 和 john 的文件,并分别用 mike 和 jim 替换它们。每个文件可以有 kyle 或 john 或两者兼有。
这是我的代码
import os
import fileinput
import sys
rootdir ='C:/Users/sid/Desktop/test'
searchTerms = {"kyle":"mike","john":"jim"}
#old= "kyle"
#new = "mike"
def replaceAll(file,searchExp,replaceExp):
for line in fileinput.input(file, inplace=1):
if searchExp in line:
line = line.replace(searchExp,replaceExp)
sys.stdout.write(line)
for subdir, dirs, files in os.walk(rootdir):
for file in files:
path=subdir+'/'+file
for oldline, newline in searchTerms.items():
replaceAll(path,oldline,newline)
现在我创建了一个测试文件夹,其中包含 sample.txt,在 sample.txt 中我有单词 kyle。但是当我运行程序时,文件没有内容,甚至 kyle 也不存在。你能告诉我我做错了什么吗?我认为问题出在我的 replaceAll 函数中。在行 if searchExp in line
中没有得到正确执行。你能告诉我为什么吗?