如何使用Python从文本文件读入元数据(带标记)

2024-09-30 00:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

文本文件开头的数据格式如下:

&SRS
<MetaDataAtStart>
multiple=True
Wavelength (Angstrom)=0.97587
mode=assessment
background=True
issid=py11n2g
noisy=True
</MetaDataAtStart>
&END
Two Theta(deg)  Counts(sec^-1)
10.0    41.0
10.1    39.0
10.2    38.0
10.3    38.0

我可以用什么方法来提取wavelonght的元数据值?CSV字典阅读器能用吗?在


Tags: truemodemultipleendbackground数据格式文本文件srs
2条回答

最简单的解决方案是读取文件头:

f = open("data.txt", "r")
for line in f:
    if "</MetaDataAtStart>" in line:
        print "Wavelength data was not found"
        break;
    if "Wavelength" in line:
        print line.split("=")[1]

输出:

^{pr2}$

编辑:

import re
f = open("data.txt", "r")
regex = re.compile(r'Wavelength \(Angstrom\)=([0-9]+\.?[0-9]*)')
for line in f:
    result = regex.search(line)
print result.group(1)

输出:

^{pr2}$

用lxml美化soup可以做到这一点。使用findAll()找到标记后,就可以提取数据。此时,Python可以很容易地将()拆分到\n上,然后再拆分到=。如果您需要代码示例,请告诉我,我会提供一个。在

相关问题 更多 >

    热门问题