我是所有这些的初学者,我正在尝试解析一个有组织的文本文件。
文本文件类似于以下内容:
blahblahblahblahbblahb
blahblahblahblahblahblah
Variable: A Variable1: B Variable2: C
blah blah blah
我正在尝试在Variable,Variable1,Variable2之后提取值。
我的想法是尝试将带有变量的行拆分为每个“变量”的新行,然后删除不以Variable / Variable1 / Variable2开头的其他所有内容,然后将其转换为表格。
有没有人对如何以更好的方式解决这个问题有任何建议?
答案 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