用Python过滤文本文件中的数据
我刚开始学Python(就像刚出生一样),我想用它来补充另一个程序。我有一个文本文件,里面是一个游戏的物品列表,格式是这样的:
[1]
Name=Blah
Faction=Blahdiddly
Cost=1000
[2]
Name=Meh
Faction=MehMeh
Cost=2000
[3]
Name=Lollypop
Faction=Blahdiddly
Cost=100
我需要找出哪些组(括号里的数字)有相同的值。
比如说,如果我搜索“Faction=Blahdiddly”,那么组1和组3就会被找到。
可惜的是,我完全不知道该怎么做。
有人能帮帮我吗?
2 个回答
1
你有没有看过ConfigParser模块?你提到的那个文本文件,看起来ConfigParser可以直接识别。这里有一个例子可以帮助你入门。
5
正如Senthil所说,ConfigParser是用来读取这种文件的工具。不过,它并没有提供一个简单的方法来按照你想要的方式进行筛选。你可以做到这一点(获取所有部分的列表,检查每个部分是否包含某个键,如果有的话,再看看这个键的值是否符合要求,如果符合,就记录下这个部分),但这样做可能会比较复杂。
datafile = open("datafile.txt")
section = None
found = []
match = set(["Faction=Blahdiddly"]) # can be multiple items
for line in datafile:
line = line.strip()
if line.startswith("[") and line.endswith("]"):
section = line.strip("[]")
elif line in match:
found.append(section)
print found