2011-01-14 23 views
0

我是Python新手(如Zygote new),它只是補充另一個程序,但我需要的是我有一個文本文件,它是一組遊戲的項目格式如下:使用Python過濾文本文件中的數據

[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

您對使用的文件格式有任何控制嗎?如果你只是想加載數據並在不同的程序之間共享,XML可能適合你。如果你想進行搜索和排序,你可能想開始查看像SQlite這樣的數據庫。 – 2011-01-14 06:36:12

回答

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

這可行,但如果我想過濾兩個或更多的項目呢? – YAS 2011-01-14 06:03:12

相關問題