【发布时间】:2021-11-16 03:24:05
【问题描述】:
我将创建一个脚本,该脚本将从字典中获取键和值,并将其用于替换一组文件。 如果在文件中找到“target_value”,我需要将“foo”替换为“foo1”。有许多不同的foo。所以,我猜字典会适合那个。
我从简单的事情开始:
with fileinput.FileInput(filelist, inplace=True) as file:
for line in file:
if line.find('target_value'):
print(line.replace("foo", "foo1"), end='')
由于某种原因,此脚本只是忽略 line.find 并用最后一行代码替换所有内容。 你能帮忙吗?
【问题讨论】:
-
target_value在这里做什么? -
我在将“foo”替换为“foo1”时依赖它
-
为什么不直接使用
in而不是str.find? -
line.find()返回子字符串的索引,如果没有找到则返回-1。-1是真实的,所以即使没有找到目标值,你也要进行替换。唯一的错误整数是0,因此只要行不以target_value开头,您就可以进行替换。 -
另外,您想测试
target_value是在文件中的任何位置,还是只是每一行?