使用另一个Python文件修改/替换Python文件中的一行

3
我是一个有用的助手,可以为您翻译文本。
我正在尝试从另一个Python文件中替换/修改字符串的一部分。 我试图在其他PY中替换的行是:
a.setSystemFile('D:/test/f.xml')

我想替换这行代码中的部分,即xml路径字符串,使用不同的xml路径:
示例:
a.setSystemFile('C:/try/X.xml')

我的代码看起来像:

with open('script.py') as f:  lines = f.read().splitlines()
with open('script.py', 'w') as f:

    for line in lines:
      if line.startswith('a.setSystemFile'):

        f.write(line.replace('D:/test/f.xml','C:/try/X.xml')

然而,这会使文件变为空,并且只写入C:/try/X.xml。是否有一种方法可以同时保留原始内容,仅替换与上面示例中类似的XML路径字符串?任何帮助将不胜感激。谢谢。
1个回答

2

如果该行文本不是以该文本开头,那么您忘记了做某些事情。

for line in lines:
  if line.startswith('a.setSystemFile'):
    f.write(line.replace('D:/test/f.xml','C:/try/X.xml'))
  else:
    f.write(line)

此外,我可以建议您只使用sed来完成这个任务吗?

谢谢上述方法有效。我也会考虑使用SED,感谢提供信息。 - user741592

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接