在文件中查找并替换多个字符串,然后输出到新文件名python

时间:2009-11-30 20:50:46

标签: python full-text-search replace

我希望创建一个python脚本,它将读取一个源文件,然后生成另一个带有名称字符串的文件。

例如

macaddress.cnf.xml包含源文件

我需要在macaddress.cnf.xml的多个位置将'600​​0'更改为'6001',然后我想输出到newmacaddress.cnf.xl。

这就是我所拥有的

#! /usr/bin/python
#read and write to file
f = open(file)
for line in f:
    if line.contains('66001'):
        newline = line.replace('66001', '60001')

要添加,我希望能够使用csv或其他任何内容执行此操作并运行脚本并执行

60002>> macaddressfromcsv.cnf.xml 60003>> macaddressfromcsv.cnf.xml 60004等。

对不起,我对此很新,任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

从您的问题中不清楚您的所有目标是什么,但我会尝试解决其中的一些问题。如果要从一个文件中获取输入,请对其进行修改,然后写入您可以执行的其他文件:

buffer = "";
with open("input_file") as in:
    buffer = in.read();

# do modifications ...

with open("output_file", 'w') as out:
    out.write(buffer);

注意:您需要在python 2.5版中使用from __future__ import with_statement

要进行多次替换,您实际上可以使用re.sub()函数:

buffer = re.sub('6000', '6001', buffer)

关于使用csv的附加信息,请提供更详细的说明或您要尝试实现的示例。

答案 1 :(得分:0)

data=open("input_file").read()
outfile=open("macaddressfromcsv.cnf.xml","w")
for i in range(6001,6010):
    outfile.write(data.replace("6000",str(i))
    outfile.write("\n") # you may not need this
outfile.close()

编辑。我想你需要澄清这个问题。是否只有一个输出文件,或者每个替换文件是否需要一个文件?