我需要在目录中用xml标记解析txt文件(我已经用glob创建了一个语料库),但是etreeparse一次只允许一个文件。如何设置一个循环来同时解析所有文件?目标是使用请求将这些文件添加到Elasticsearch中。到目前为止,我得到的是:
import json
import os
import re
from lxml import etree
import xmltodict
import glob
corpus=glob.glob('path/*.txt')
ns=dict(tei="http://www.tei-c.org/ns/1.0")
tree = etree.ElementTree(file='path/file.txt')
doc = {
"author": tree.xpath('//tei:author/text()', namespaces=ns)[0],
"title": tree.xpath('//tei:title/text()', namespaces=ns)[0],
"content": "".join(tree.xpath('//tei:text/text()', namespaces=ns))
}
只需迭代
corpus
列表。但是,您将希望使用一个容器(如列表或字典)来保存单独解析的数据。下面假设.txt文件是格式良好的.xml文件,并保持相同的结构,包括tei
命名空间:相关问题 更多 >
编程相关推荐