我有一個CSV,我想在XML模板內部替換值。爲每行生成XML,其中的文件名基於同一行中的數據。這些基本上只是模板的一個查找和替換副本。 到目前爲止,我已經獲得了文件名以正常工作,但是XML文件不會根據行替換其數據,而只會替換第3行第10列中的數據。我期望讓它遍歷一系列的行,並且爲每個文件創建新文件。我很難在這裏發生什麼問題。Python - 遍歷CSV行並替換爲XML
CSV段:
COLUMN_K, COLUMN_L
K02496.ai, Test
K02550.ai, Test
K02686.ai, Test
K02687.ai, Test
現有的XML模板片段
<gmd:resourceFormat>
<gmd:MD_Format>
<gmd:name>
<gco:CharacterString>COLUMN_K</gco:CharacterString>
</gmd:name>
Python代碼
import csv
exampleFile = open('U:\PROJECTS\Technical Graphics\metadata.csv')
exampleReader = csv.reader(exampleFile)
exampleData = list(exampleReader) #CSV as list
with open('U:\PROJECTS\Technical Graphics\COLUMN_K_edited.xml') as inputfile: #template XML
xml = inputfile.read()
with open('U:\PROJECTS\Technical Graphics\metadata.csv') as csvfile:
for row in reader(csvfile, delimiter=';'):
for i in range(5): #range of 5 rows
xml = xml.replace('COLUMN_K', exampleData[i+3][10])
#Only taking value from row 3, COLUMN_K- Need values from row 3 on
xml = xml.replace('COLUMN_L', exampleData[i+3][11])
#Only taking value from row 3, COLUMN_L- Need values from row 3 on
with open('U:\PROJECTS\Technical Graphics\XXX' + str((exampleData[i+3][10])) + ".xml", 'w') as outputfile:
#Correctly outputs multiple filenames based on COLUMN_K value
outputfile.write(xml) #writes multiple XMLs
使用[最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)進行更新。因爲它是我無法理解輸入和輸出應該是什麼。例如,閱讀器以分號分隔符打開,但示例中沒有分號。沒有'COLUMN_E'可以替換。 –
對不起。我從現在開始遵循該協議,現在編輯示例。 – MapZombie