xml 个文件夹中的文件进入列表

xml files from folder into list

我是编程新手,这是我第一次使用 xml,但是对于 class 我正在做一个性别 classification 项目,数据集为博客。 我有一个包含 xml 个文件的文件夹。现在我需要列出那里的文件名。 然后我应该能够 运行 通过循环列表并打开每个包含 XML 的文件并从中获取我想要的内容(例如文本和 class)然后存储它在另一个变量中,例如将其添加到列表或字典中。

我尝试了一些方法,但它不对,我有点卡住了。有人能帮我吗?这是我到目前为止所拥有的:

path ='\Users\name\directory\folder'
dir = os.listdir( path )
def select_files_in_folder(dir, ext):
    for filename in os.listdir(path):
        fullname= os.path.join(path, filename)
        tree = ET.parse(fullname)
    for elem in doc.findall('gender'):
        print(elem.get('gender'), elem.text)

如果您想在给定目录中构建所有 xml 文件的列表,您可以执行以下操作

def get_xml_files(path):
    xml_list = []
    for filename in os.listdir(path):
        if filename.endswith(".xml"):
            xml_list.append(os.path.join(path, filename))
    return xml_list

请记住,这不是通过文件夹递归,它只是假设 xml 文件以 .xml 结尾。

编辑:

解析 xml 高度依赖于您将使用的库。根据您的代码,我猜您正在使用 xml.etree.ElementTree (请记住,此库对于恶意构造的数据并不安全)。

def get_xml_data(list):
    data = []
    for filename in list :
        root = ET.parse(filename)
        data = [ text for text in root.findall("whatever you want to get") ]
    return data