2011-01-14 4 views
0

저는 (새로운 Zygote와 같은) 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

사용 된 파일 형식을 제어 할 수 있습니까? 데이터를로드하고 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

두 개 이상의 항목을 필터링하고 싶다면 어떻게해야합니까? – YAS

+0

그러면 [match1, match2, match3]의 "elif line :" –

+0

목록을 사용하도록 편집합니다. – kindall