Фильтрация данных в текстовом файле с помощью Python - PullRequest
0 голосов
/ 14 января 2011

Я новичок в Python (как и Zygote new), и я просто дополняю другую программу, но мне нужно иметь текстовый файл, который представляет собой группу элементов для игры и отформатирован так:

[1]
Name=Blah
Faction=Blahdiddly
Cost=1000

[2]
Name=Meh
Faction=MehMeh
Cost=2000

[3]
Name=Lollypop
Faction=Blahdiddly
Cost=100

И мне нужно выяснить, какие группы (числа в скобках) имеют совпадающие значения.

Так что, если я буду искать фракцию = придурковатая группа 1 и 3 появится.

К сожалению, я понятия не имею, как это сделать.

Может кто-нибудь помочь?

Ответы [ 2 ]

4 голосов
/ 14 января 2011

Как указывает 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 голос
/ 14 января 2011

Вы смотрели на модуль ConfigParser ? Текстовый файл, который вы описываете, кажется, что-то, что ConfigParser может распознать из коробки. Вот пример , с которого можно начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...