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

3 投票
1 回答
2404 浏览
提问于 2025-04-16 18:45

我想在一个Python文件中替换或修改另一个Python文件中的一部分字符串。

我想替换的那一行是:

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来处理这个问题。

撰写回答