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

0 投票
2 回答
10509 浏览
提问于 2025-04-16 09:56

我刚开始学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

撰写回答