(Python) 반복문에서의 startswith 질문
조회수 639회
name = input('Enter file name: ')
if len(name) < 1 : name = 'mbox-short.txt'
handle = open(name)
counts = dict()
for line in handle :
if 'From' in line :
print(line)
특정 워드를 찾는 문제에서 평소같이 문장을 사용해 찾았습니다. 그렇게 나온 결과가
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
From: stephen.marquard@uct.ac.za
From louis@media.berkeley.edu Fri Jan 4 18:10:48 2008
From: louis@media.berkeley.edu
From zqian@umich.edu Fri Jan 4 16:10:39 2008
From: zqian@umich.edu
...
위와 같은식으로 메일주소만 한 번 더 반복되어 출력되더라구요. 이 때 당시만 하더라도 전 텍스트 내에 이렇게 저장되어 있는 줄 알았습니다. 도통 풀리지 않아 코드를 검색하던 도중 같은 코드에서
startswith('From')
으로만 변경하니
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
From louis@media.berkeley.edu Fri Jan 4 18:10:48 2008
From zqian@umich.edu Fri Jan 4 16:10:39 2008
From rjlowe@iupui.edu Fri Jan 4 15:46:24 2008
From zqian@umich.edu Fri Jan 4 15:03:18 2008
From rjlowe@iupui.edu Fri Jan 4 14:50:18 2008
위와 같이 메일 주소만 있었던 라인이 사라져있었습니다. 다른 값으로 풀어보려고 하니 헛짓거리 한 셈인데요. 함수를 사용하고 안하고에서 왜 출력결과가 이렇게 달라지는지 궁금합니다. 이유가 무엇인가요? 제가 사용한 방식이 왜 잘못된 거였나요? 조언 부탁드립니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
질문자의 현상이 이해가 되지 않습니다. 파일안의 문자열을 알아야 원인 파악을 할 수 있습니다.
'From' in line 은 From 만 존재하면 True이고 startswith 는 From 으로 시작하는 문자열만 True 입니다.
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 From: stephen.marquard@uct.ac.za
두 문장의 차이를 보면 콜론(:) 의 차이가 있는 다른 문장으로 보입니다. 혹시 문장 앞에 공백이 있는지 살펴보고 trim 을 해서 다시 테스트 해보시기 바랍니다.
L = ('From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008\n', 'From: stephen.marquard@uct.ac.za\n', 'From louis@media.berkeley.edu Fri Jan 4 18:10:48 2008\n', 'From zqian@umich.edu Fri Jan 4 16:10:39 2008\n') for line in L: if line.startswith('From'): print(line) for line in L: if 'From' in line: print(line) From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 From: stephen.marquard@uct.ac.za From louis@media.berkeley.edu Fri Jan 4 18:10:48 2008 From zqian@umich.edu Fri Jan 4 16:10:39 2008 From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 From: stephen.marquard@uct.ac.za From louis@media.berkeley.edu Fri Jan 4 18:10:48 2008 From zqian@umich.edu Fri Jan 4 16:10:39 2008
댓글 입력