저는 루프와 파일을위한 파이썬에 관련된 질문이 있습니다. 이 코드에서파일 객체에서 for 루프가 수행하는 작업은 무엇입니까?
:
file = raw_input("input a text file ")
f = open(file) # creates a file object of file
for line in f:
# prints each line in the file
print line
print f
# prints <open file 'MVL_ref.txt', mode 'r' at 0x0267D230>
print f.read() # same output of the for-cycle
print f.readline() # same output of the for-cycle
에 대한 루프 내 텍스트 파일에 존재하는 각 행을 인쇄한다. 그러나 파일 객체를 인쇄하면 나는 완전히 다른 것을 얻습니다. 나는 같은 것을 사용했다는 것을 기대하기 때문이 날 퍼즐 :
for line in f.read():
print line
그러나 물론 이러한 경우가
. for-loop없이 read 또는 readline 메소드를 사용하면 for-loop의 동일한 출력을 얻습니다.for 루프는 파일 객체에 대해 read() 또는 readline()을 호출하는 것과 같은 마법을 사용합니까? 파이썬으로 코드 작성하는 법을 배우고 있지만 코드가 "내 등 뒤에서"무엇을하는지 거의 이해하지 못합니다.
앞으로 올 모든 설명에 감사드립니다.
개체에 대한 설명을 볼 수 있습니다 뭐하는거야? –
'for line in f.read() :'... 변수 이름을 혼동하지 마십시오. 그것들은 줄이 아니며 그것들은 하나의 문자입니다 –
줄 문자가 이미 "\ n"인 경우 txt 파일에 실제로 의존합니다. ** 사용은 필요 없습니다 ** read() ** method –