我是Python新手。 我有一个内部有html的xml文件和一个csv文件。
xml文件示例:
<example>
<name id="{{2}}">1;Alex
2;345
3;10
4;math
5;pysics
6;chemistry
</name>
<class>{{3}}</class>
<modules>
<module>{{4}}</module>
<module>{{5}}</module>
<module>{{6}}</module>
</modules>
</example>
包含两列的CSV文件:
i=1
for line in inputfile.readlines():
outputfile.write(line.replace('{{'+str(i)+'}}', 'value from 2nd colum of csv file'))
i = i +1
我必须使用csv文件第二列中的值替换{{}}中的值(引用位于第一列中的csv文件中)。
我能够成功读取csv文件(没问题)。 我正在寻找在xml文件中查找和替换每个{{}}的解决方案。
我试过
{{1}}
但它没有取代所有的值。
提前致谢。
答案 0 :(得分:2)
这段代码可以解决问题:
from csv import reader
with open('test.xml') as inputfile:
xml = inputfile.read()
with open('test.csv') as csvfile:
for row in reader(csvfile, delimiter=';'):
xml = xml.replace('{{%s}}' % row[0], row[1])
with open('output.xml', 'w') as outputfile:
outputfile.write(xml)
此代码使用csv
模块,这意味着您不必处理可能出现在csv数据中的转义或引用的复杂性。