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

时间:2011-06-01 09:28:06

标签: python

我试图从另一个python文件替换/修改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 个答案:

答案 0 :(得分: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吗?