我是Python的新手(比如Zygote new),它只是为了补充另一个程序,但我需要的是我有一个文本文件,它是游戏的一组项目,它的格式是:
[1]
Name=Blah
Faction=Blahdiddly
Cost=1000
[2]
Name=Meh
Faction=MehMeh
Cost=2000
[3]
Name=Lollypop
Faction=Blahdiddly
Cost=100
我需要能够找出哪些组(括号中的数字)具有匹配的值。
所以,如果我搜索Faction = Blahdiddly Group 1& 3会出现。
我很遗憾不知道该怎么做。
有人可以帮忙吗?
答案 0 :(得分:4)
正如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
答案 1 :(得分:1)
你看过ConfigParser模块了吗?您描述的文本文件似乎是ConfigParser可以识别的开箱即用的文件。 Here is an example让你开始。