python - 使用 python 解析 *.nfo 文件

标签 python elementtree msinfo32

我尝试解析 nfo 文件并以 html 代码样式(表格)打印。
我尝试使用 xml.etree 但我只得到 2 个元素:MetadataCategory
.nfo 如下所示:

<?xml version="1.0"?>
<MsInfo>
<Metadata>
<Version>8.0</Version>
<CreationUTC>12/02/15 10:45:25</CreationUTC>
</Metadata>
<Category name="System Summary">
<Data>
<Item><![CDATA[OS Name]]></Item>
<Value><![CDATA[Microsoft Windows 8.1 Pro]]></Value>
</Data>
</Category>
</MsInfo>

我的代码如下:

tree = ET.parse(File)
root = tree.getroot()

for element in root.findall('Category'):
    value = element.find('Data')
    print element.attrib

但只打印类别元素,我的问题是如何从数据获取值?
谢谢!

最佳答案

我猜您可能希望解析 MSINFO32 的 .nfo 输出。我发现下面的代码是解析整个文件并得出可用对象的最直接方法。

for element in root.iter('Data'):
out = []
for n in range(len(element)):
    out.append('{0}'.format(element[n].text))
print(out)

输出如下:

['OS Name', 'Microsoft Windows 10 Enterprise Evaluation']
['Version', '10.0.15063 Build 15063']
['Other OS Description ', 'Not Available']
['OS Manufacturer', 'Microsoft Corporation']
['System Name', 'WIN10BLANK']
['System Manufacturer', 'Microsoft Corporation']
['System Model', 'Virtual Machine']
['System Type', 'x64-based PC']
['System SKU', 'Unsupported']

关于python - 使用 python 解析 *.nfo 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34070729/

相关文章:

使用命名空间的 Python ElementTree find()

python - 删除 too 元素之间的多个 XML 元素

windows - msinfo32 无法在 Windows XP 下的 NSIS 中运行

python - 解码 python 中的错误转义字符

python - python 中的抓取显示 None 值

Python:仅提取值不断变大的文件中的行

python - 如何在python中对嵌套字典进行排序?

Python + 外籍人士 : Error on &#0; entities