2012-03-17 6 views
0

나는 아주 간단한 코드를 작성했지만 한 가지를 이해할 수는 없습니다. 코드는파일을 읽은 후 EOF?

name = open("test.txt") 

def CountLines(name): 
    return len(name.readlines()) 

def CountChars(name): 
    return len(name.read()) 


print(CountLines(name)) 
print(CountChars(name)) 

처럼 보인다 그리고 지금의는 "TEST.TXT은"(1 호선, 2 호선, 세 번째 줄, 라인 4) 4 줄의 텍스트가 들어 가정 해 봅시다. 이 코드를 실행 한 후에 나는 출력을 얻을 것이다 :

4 
0 

첫 번째 것은 괜찮지 만 두 번째 이유는 무엇입니까? 이전 기능이 EOF로 설정 되었기 때문에? 그렇다면 처음부터 파일을 읽지 않는 이유는 무엇입니까? 파일을 다시로드하는 방법이 있습니까?

답변

2

예, 전체 파일을 이미 읽었으므로 두 번째 파일은 0이므로 CountChars에 읽을 내용이 없습니다.

CountChars으로 전화하기 전에 파일의 시작 부분으로 돌아 가려면 name.seek(0)을 입력해야합니다. file object documentation을 확인하십시오.

+1

또는 읽어 들인 데이터를 저장하고 다시 분석하십시오. –

관련 문제