从文件夹中打开并解析多个XML文件

时间:2017-08-22 15:33:01

标签: python glob

下面的Python代码适用于一个XML。当我尝试打开并解析多个XML文件时出现问题,这些文件具有类似的结构并保存在文件夹中(第4行 - > data = open(' [0-9] .xml', " rb")。我正在尝试使用正则表达式,但我不确定这是否适用于命名文档。

所有文件的名称是" 11111.xml,22222.xml,33333.xml ......" 等等。

import xml.etree.ElementTree as ET
import re

data = open ('[0-9].xml',"rb")
tree = ET.parse (data)
lst_jugador = tree.findall('data_panel/players/player')
for jugador in lst_jugador:
    print (jugador.find('name').text, jugador.get("id"))

2 个答案:

答案 0 :(得分:1)

您可以使用glob模块。

import glob
import xml.etree.ElementTree as ET

filenames = glob.glob("[0-9].xml")  # change the pattern to match your case

for filename in filenames:

    with open(filename, 'r', encoding="utf-8") as content:

        tree = ET.parse(content)

        lst_jugador = tree.findall('data_panel/players/player')

        for jugador in lst_jugador:

            print (jugador.find('name').text, jugador.get("id"))

答案 1 :(得分:0)

如果目录中的所有文件都需要解析,则可以使用mtm = bmat.transpose().multiply(bmat)

os.listdir()