【发布时间】:2019-03-26 09:41:37
【问题描述】:
我有一个应该接收的 python 函数:
- 文件路径
- 具有要查找的旧值和要替换它的新值的元组列表。
脚本应该生成用元组值(从旧到新)修改的相同文件。这是我迄今为止尝试过的:
def inplace_change(new_filename, old_string_new):
for old_new in old_string_new:
with open(new_filename, "rt") as fin:
with open(new_filename, "wt") as fout:
for line in fin:
fout.write(line.replace(old_new[0], old_new[1]))
我通常会像这样将元组列表传递给他们:
[('PidFile=/path/xxx.pid',
'PidFile=/path/xxx.' + container_name + '.pid'),
('LogFile=/xx/log/nc_zabbix_agentd.log',
'LogFile=/xx/log/yyyy.' + container_name + '.log')
...]
然后是文件所在的正常路径。
我设法很容易地只替换了一个元组(单个旧字符串与新字符串),但是当我有列表时,我无法获得完成此操作的逻辑。有任何想法吗?
【问题讨论】:
-
你看过
re.sub吗?以编程方式编译一个模式来完成它。 -
你有什么错误吗?
-
没有错误。用这个版本的代码在这端得到一个空白文件。
-
我还没有查看
re.sub。我会检查一下,但一般不知道模块。 -
您可以使用单个文件打开多个文件:stackoverflow.com/questions/4617034/…
标签: python python-2.7