[英]How to search for a specific keyword in multiple XML files
我必须分析多个 XML 文件(> 1000 个文件)。
这些 XML 文件中的一个标签包含自由文本。 我需要在此标签中搜索特定关键字,例如“示例”,并将 output(文件名,自由文本/标签)保存在 CSV 中。
我尝试过这样的事情(我是 Python 的新手......每个人都从小做起)。
import os
import os.path
for fname in os.listdir('C:/Testpath/xml'):
if os.path.isfile(fname):
f = open(fname)
if 'Example' in f.read():
print(fname)
f.close()
但这似乎不起作用,因为我得到的唯一 output 是一个不包含指定关键字的 XML 文件。 有任何想法吗?
这应该让你开始
import xml.etree.ElementTree as ET
for fname in os.listdir('C:/Testpath/xml'):
if fname.endswith('.xml'):
with open fname as f:
tr = ET.parse(f)
for e in tr.iter():
if 'Example' in fname:
print(fname)
试试这个。 首先,你需要安装这个 package: pip install simplified_scrapy
如果你能举个 XML 的例子可能会更好。
from simplified_scrapy import SimplifiedDoc, utils
files = utils.getSubFile('C:/Testpath/xml', end='.xml')
rows = []
keywordReg = '(word1)|(word2)'
for f in files:
doc = SimplifiedDoc(utils.getFileContent(f))
node = doc.getElementByReg(keywordReg)
if node:
rows.append([f, node.tag, node.text])
utils.save2csv('test.csv', rows, newline='')
这里有更多的例子。 这个库很容易使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.