2014-06-14 3 views
0

나는 그것을 통해 라인으로 라인을 나는 TEXTFILE을 열려고하고 다음 코드를 읽고, 라인이 특정 국가 코드 (US, BR)가있는 경우, 목록 myNames에 추가 한 :'any()'함수를 사용하여 여러 부분 문자열을 검색하는 방법은 무엇입니까?

f = urllib2.urlopen(url) 
    countries = ['US', 'BR'] 
    myNames = [] 
    for line in f: 
     line = f.readline() 
     if any(x in line for x in countries): 
      myNames.append(line) 

불행히도 any()의 사용은 부정확합니다. 왜냐하면 각 유형이 더 있음을 확인할 수는 있지만 1 국가에서 적은 수를 산출하고 2 국가에서 적은 수를 산출하기 때문입니다. 이 문제를 어떻게 해결할 수 있습니까?

답변

4

그것은 무엇 x이며, 어떤 파일에 있어요 그러나이 조각 모르게 말을 열심히 :

for line in f: 
    line = f.readline() 

한 번에 두 줄을 읽고 - 이미 라인으로 파일 라인 반복되는 for line in f, 두 번 읽으면 한 줄 건너 뛰는 것입니다. 그러면 결과가 너무 적게 나오는 이유를 설명 할 수 있습니다.

+0

설명해 주셔서 감사합니다. 'line = f.readline()'이 (가) 제거되었으며 제대로 작동하기 시작했습니다. – user61629

1

나는 당신이해야한다고 생각 :

for line in f.readlines(): 
    if any(x in line for x in countries): 
     myNames.append(line) 

그렇지 않으면 당신이 라인의 좋은 수를 건너 뜁니다.

+0

접근 해 주셔서 감사합니다. – user61629

관련 문제