2011-01-14 10 views
0

私はPythonを新しくしました(新しいZygoteのような)、別のプログラムを補うだけですが、私は必要なのはゲーム用のアイテム群ですPythonを使用したテキストファイルのデータのフィルタリング

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

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

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

そして、どのグループ(括弧内の数字)が一致する値を持っているかを調べる必要があります。

だから私は派閥= Blahdiddlyグループ1 & 3検索します。

私は残念ながらこれを行う方法を考えていません。

誰でも手助けできますか?

+0

使用するファイル形式を自由に制御できますか?データをロードしてprog間で共有したいだけの場合は、XMLが役に立つかもしれません。検索と並べ替えを行いたい場合は、代わりにSQliteのようなデータベースを調べることをお勧めします。 –

答えて

1

ConfigParserモジュールを見ましたか?あなたが記述するテキストファイルは、ConfigParserがすぐに認識できるもののようです。 Here is an exampleを起動してください。

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 
+0

これは動作しますが、2つ以上のアイテムをフィルタリングしたい場合はどうすればよいですか? – YAS

+0

あなたはこれを "[match1、match2、match3]の" elif line: " –

+0

とします。これを編集してリストを使用します。 – kindall

関連する問題