我正在尝试使用Python ElementTree解析多个xml文件。 我的部分代码如下:
dirSelected = tkFileDialog.askdirectory()
# User names the output csv file
csvFile = raw_input('Enter the name for the result csv file ')
csvFile = csvFile + ".csv"
resultCSV = open(csvFile, "w+")
# Formation of a long string that becomes the header of the csv file
resultCSV_header = 'header,' + 'header2,'
print (resultCSV_header, file = resultCSV)
for root, dirs, files in os.walk(dirSelected):
for fi in files:
#parse S1.xml files
if (fi.endswith('.xml') and fi.startswith('S')):
filePath = os.path.join(root, fi)
#Parse XML directly from the file path
tree = ET.parse(filePath)
#Get the root node
doc = tree.getroot()
column1 = doc.find('.//TAG1').text
...
resultCSV_recipe = (column1 + "," + column2 + ...)
print (resultCSV_xml)
print (resultCSV_xml, file=resultCSV)
我的问题是我试图解析多个* .xml文件并将数据放入* .csv输出文件的一行。例如,我在所选文件夹中有S1.xml,S2.xml,C1.xml,C2.xml,我希望将S1.xml和C1.xml中的数据放入输出文件的一行。我的输出文件是一个简单的* .csv文件,我希望用Excel打开,我自己定义行和列。
我现在可以解析从S1.xml到输出的所有TAG,它工作正常,但是当我尝试通过遍历所选文件夹中的所有文件和dirs来解析C1.xml时,我遇到了一些问题。 for循环和输出参数。显示“赋值前引用的局部变量'column1'”。
是否可以使用Python在一个文件夹中连接多个* .xml文件。或者是否有更好的函数来解析* .xml文件。 谢谢大家!!! //