2014-04-23 3 views
0

나는 노래와 장르를 만든 txt 파일을 처리하려하지만, 파이썬에게 무엇을 찾아야 할지를 모른다. TXT 파일에는과 같이 포맷 :txt 파일의 한 줄에있는 단어 검색하기

  1. 7/27/2012

1.1. Lovin 'You Fun Fun-Country

[...]

1.100. 나에게 전화 해 - 틴 팝, 댄스 - 팝

[] 2 7/27/2013

2.1. 크라운 - 힙합

(괄호 실제적인 파일)

내가 선에서 특정 단어를 찾기 위해 코드를 작성하려고했지만, 코드가 내가 그것을 통과 어떤 문자열을 포함하는 것으로 파일의 모든 라인을 찾습니다 (분명하지는 않지만). 코드가 나는 그것이, 그 다음 라인의 첫 번째 번호로 각 라인을 분류 특정 문자열을 검색하고 해당 문자열에 대한 카운트에 추가 할 싶어 방법을 일 경우

try: 
    infilehandle = open(afile, "r") 
    alllines = infilehandle.read().splitlines(False) 
    infilehandle.close() 
except: 
    alllines=None 
    print "Unable to read file {0}".format(afile) 
for aline in alllines: 
    if aline.find("Country"): 
     country_count += 1 
    if aline=="1. 7/28/2012" or "2. 7/27/2013" or "3. 4/27/2013" or "3. 4/27/2013": 
     continue 
    else: 
     continue 

: 여기에 코드입니다. 가능한가요?

답변

0

부울은 부울을 반환하지 않습니다. int를 반환합니다. 특히 문자열을 찾지 못하면 -1을 반환합니다.

그리고 jonrsharpe는 언급 한대로 or을 잘못 사용하고 있습니다.

try: 
    infilehandle = open(afile, "r") 
    alllines = infilehandle.read().splitlines(False) 
    infilehandle.close() 
except: 
    alllines=None 
    print "Unable to read file {0}".format(afile) 
    exit(1) 
for aline in alllines: 
    if aline.find("Country") != -1: 
     country_count += 1 
    if aline=="1. 7/28/2012" or 
     aline=="2. 7/27/2013" or 
     aline=="3. 4/27/2013" or 
     aline=="3. 4/27/2013": 
     pass # I have no idea what you're trying to do here 
당신은 작성해야
1

:

if aline.find("Country") != -1: 

또는 더 나은 읽어야 할 경우 두 번째 또한

if "Country" in aline: 

, 다음과 같습니다

if aline=="foo" or aline=="bar" or aline=="zom": 
관련 문제