파이썬 처음 시작하는데 type()을 하고 나면 print()가 제대로 안됩니다.
조회수 485회
중간에 type()을 한번 하고 나면 마지막 print(diary)에 값이 나오지 않습니다.
f.seek(0)을 해봐도 결과는 똑같이 나옵니다.
왜 이렇게 되는지 궁금합니다.
감사합니다.
1 답변
-
파일의
read()
메서드는 인수로 아무것도 지정해 주지 않으면 파일 내의 모든 텍스트를 다 읽어와서 문자열로 반환합니다.type(f.read())
에서 내부의f.read()
가 모든 텍스트를 문자열로 가져왔고, 그것(문자열)을type()
에 넣었기 때문에<class 'str'>
가 출력된 것입니다.그 이후에
diary = f.read()
를 다시 실행하였지만, 이미 앞에서 파일의 텍스트를 모두 읽어 왔으므로 더 읽어 올수가 없습니다. 따라서f.read()
는 빈 문자열''
을 반환하고,print(diary)
는 빈문자열을 출력하여 화면에 흰색 빈줄 하나가 출력된 것입니다.그리고
f.seek(0)
을 사용할 경우에는 아래처럼 다시f.read()
하기 전에 사용해야 합니다.f=open('a.txt','r') type(f.read()) f.seek(0) diary=f.read() print(diary)
-결과
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력