Python 使用ElementTree逐个解析目录中的所有xml文件

Python 使用ElementTree逐个解析目录中的所有xml文件,python,xml,parsing,elementtree,Python,Xml,Parsing,Elementtree,我正在用ElementTree解析python中的XML import xml.etree.ElementTree as ET tree = ET.parse('try.xml') root = tree.getroot() 我希望解析给定目录中的所有“xml”文件。用户应该只输入目录名,我应该能够遍历目录中的所有文件并逐个解析它们。有人能告诉我方法吗。我正在使用Linux 只需在os.listdir()上创建一个循环 您的所有文件都在同一个文件夹中,或者它们在文件夹内的文件夹中?您可以使用

我正在用ElementTree解析python中的XML

import xml.etree.ElementTree as ET 
tree = ET.parse('try.xml')
root = tree.getroot()

我希望解析给定目录中的所有“xml”文件。用户应该只输入目录名,我应该能够遍历目录中的所有文件并逐个解析它们。有人能告诉我方法吗。我正在使用Linux

只需在os.listdir()上创建一个循环


您的所有文件都在同一个文件夹中,或者它们在文件夹内的文件夹中?您可以使用
glob
glob.glob('*.xml')
,这将返回xml文件列表,并根据它们在同一个文件夹中进行解析folder@Abhishek,如果它们与您的代码位于同一文件夹中:对于os.listdir(path)中的文件名:如果不是filename.endswith('.xml'):continue 35; fullname=os.path.join(path,filename)#是的,省略这一行打印(filename)@如我昨晚所发现的,如果您想要10倍的速度,请使用:
将xml.etree.cElementTree导入为ET
,不要担心更改任何代码。@wineunuchs2UNIX:更好的方法是:使用lxml。更快、更卓越的功能集。
import xml.etree.ElementTree as ET
import os

path = '/path/to/directory'
for filename in os.listdir(path):
    if not filename.endswith('.xml'): continue
    fullname = os.path.join(path, filename)
    tree = ET.parse(fullname)