使用Python过滤文本文件中的数据

时间:2011-01-14 05:11:01

标签: python file text filter

我是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会出现。

我很遗憾不知道该怎么做。

有人可以帮忙吗?

2 个答案:

答案 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让你开始。