Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将文件夹中的xml文件放入列表_Python_Xml_Nlp_Text Classification - Fatal编程技术网

Python 将文件夹中的xml文件放入列表

Python 将文件夹中的xml文件放入列表,python,xml,nlp,text-classification,Python,Xml,Nlp,Text Classification,我对编程非常陌生,这是我第一次使用xml,但在课堂上,我用博客数据集做了一个性别分类项目。 我有一个由xml文件组成的文件夹。现在我需要列出那里的文件名。 然后,我应该能够使用循环遍历列表,打开每个包含XML的文件,从中获取我想要的内容(例如文本和类),然后将其存储在另一个变量中,就像将其添加到列表或字典中一样 我试过一些东西,但是不对,我有点卡住了。有人能帮我吗?这是我到目前为止所拥有的: path ='\\Users\\name\\directory\\folder' dir = os.li

我对编程非常陌生,这是我第一次使用xml,但在课堂上,我用博客数据集做了一个性别分类项目。 我有一个由xml文件组成的文件夹。现在我需要列出那里的文件名。 然后,我应该能够使用循环遍历列表,打开每个包含XML的文件,从中获取我想要的内容(例如文本和类),然后将其存储在另一个变量中,就像将其添加到列表或字典中一样

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

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(请记住,此库对于恶意构造的数据是不安全的)


如果要构建给定目录中所有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(请记住,此库对于恶意构造的数据是不安全的)


你到底被困在哪里?你能举个例子吗output@ponayz我刚刚学了一点编程,所以这对我来说已经很难了。我被卡住了,因为我不确定接下来会发生什么。这段代码没有给出错误,但我认为它会创建一个包含xml文件夹的列表,一个我可以打印的列表。其次,我不确定“findall博士中的元素”。我的目标是获取文本和类标签,在本例中是性别。但我现在不知道该怎么办that@Debabrata我的目标是最终创建一个jsonfile,它由包含文本和classlabel@Lorien您可以使用xmltodict模块,它将从xml文件链接为您提供字典:示例:xml文件:code:
import json,xmltodict data=xmltodict.parse(open('t1.xml').read())res=map(lambda x:[x['title']、x['genre']、x['price']、data['catalog']['book'])res=json.dumps(res)
你到底被困在哪里了?你能给出一个示例吗output@ponayz我刚刚学了一点编程,所以这对我来说已经很难了。我被卡住了,因为我不确定接下来会发生什么。这段代码没有给出错误,但我认为它会创建一个包含xml文件夹的列表,一个我可以打印的列表。其次,我不确定“findall博士中的元素”。我的目标是获取文本和类标签,在本例中是性别。但我现在不知道该怎么办that@Debabrata我的目标是最终创建一个jsonfile,它由包含文本和classlabel@Lorien您可以使用xmltodict模块,它将从xml文件链接为您提供字典:示例:xml文件:code:
import json,xmltodict data=xmltodict.parse(open('t1.xml').read())res=map(lambda x:[x['title'],x['genre'],x['price']],data['catalog']['book'])res=json.dumps(res)
@ponyaz非常感谢您的帮助!最后一个问题:现在我想遍历这个列表,获取每个文件的类和文本,并将其放在不同的列表中。此列表将成为我的数据集。这就是我所拥有的,但我得到一个str对象没有atribute findall错误<代码>定义训练数据集(列表):对于列表中的文件\u文件:raw=open(file).read()tree=ET.parse(file)对于文件中的树:data=[]data.append([s.text for s in tree.findall('id'/'text'/'age\u group'))返回数据错误说明了事实,因为您的var树不再是ET元素,因为您对文件中的树执行了
,这意味着您要迭代字符串filename@ponyaz非常感谢你的帮助!最后一个问题:现在我想遍历这个列表,获取每个文件的类和文本,并将其放在不同的列表中。此列表将成为我的数据集。这就是我所拥有的,但我得到一个str对象没有atribute findall错误<代码>定义训练数据集(列表):对于列表中的文件\u文件:raw=open(file).read()tree=ET.parse(file)对于文件中的树:data=[]data.append([s.text for s in tree.findall('id'/'text'/'age\u group'))返回数据
错误说明了事实,因为您的var树不再是ET元素,因为您对文件中的树执行了
,这意味着您要迭代字符串文件名