解析文本文件中的值

时间:2016-06-15 18:21:10

标签: python

我是所有这些的初学者,我正在尝试解析一个有组织的文本文件。

文本文件类似于以下内容:

blahblahblahblahbblahb
blahblahblahblahblahblah
Variable: A Variable1: B Variable2: C
blah blah blah

我正在尝试在Variable,Variable1,Variable2之后提取值。

我的想法是尝试将带有变量的行拆分为每个“变量”的新行,然后删除不以Variable / Variable1 / Variable2开头的其他所有内容,然后将其转换为表格。

有没有人对如何以更好的方式解决这个问题有任何建议?

4 个答案:

答案 0 :(得分:0)

您可以尝试:

fields=line.split()
values = []
for k in range(len(fields)):
    if fields[k].startswith("Variable"):
        values.append(fields[k+1])

然后价值就是你想要的。

答案 1 :(得分:0)

如果您尝试将数据保存到文本文件,我建议您查看JSON个文件,因为它们更容易解析。

答案 2 :(得分:0)

您可以使用正则表达式模块。

import re

pattern = re.compile(r"(Variable\d*): (\w+)")

with open('pathToFile') as f:
    fileString = f.read()
    data = pattern.findAll(fileString)

这会给你这样的东西:

>>> data
[('Variable', 'A'), ('Variable1', 'B'), ...]

正如其他地方所述,如果您尝试存储数据或编写配置文件,则应使用JSON module或安装优秀的yaml package

其中任何一个都会为您提供更强大的解决方案。

答案 3 :(得分:0)

循环直线,然后尝试:

result = filter(lambda item: line.split(' ').index(item)%2!=0,line.split(' '))
print(result)

如果你想做过滤,映射,减少等任务,请查看lambda函数,易于理解和使用。 Python Document of lambda