• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

with open으로 파일 읽는 경우

20.12.30 00:35 작성 조회수 136

0

안녕하세요 '파이썬으로 Plain Text 포맷 다루기' 강의에 관하여 질문드립니다.

plaintext_file_format 파일의 연습문제를 풀면서

  1. 00_data/text_data_practice.txt 파일 읽고, 다음과 같이 출력되는지 확인하기

를 확인하기 위해 아래와 같이 코드를 작성했습니다.

with open('00_data/text_data_practice.txt', 'r', encoding='utf-8-sig') as text_file :

    print(text_file.readlines())

    print(text_file.read())

위 코드를 실행하니 print(text_file.readlines())는 잘 출력이 되나, print(text_file.read())는 아무것도 출력되지 않아서 질문드립니다.

with 블록 안에서 readlines()와 read()를 하나씩만 각각 실행할 때에는 정상적으로 출력이 됩니다. 그러나 두 함수를 둘 다 실행하는 경우(각각 print()로 출력하거나 print(readlines(), read())로 출력하는 경우)에는 readlines()만 출력되고 read()는 공백만 출력됩니다.

with 블록 안에서는 하나의 동작만 가능한가요? 에러가 발생한 것도 아니라서 문제점을 모르겠습니다.

감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요.

파일을 readline 이나 read 로 읽으면, 파일에서 읽은 부분까지 위치가 변경이 됩니다. 그래서, readline 후에 read 를 호출하면 readline으로 읽은 이후부분부터 읽게 되어서, 말씀하신 부분과 다르게 출력이 될 수 있습니다.

마지막으로 다음 가이드도 한번 이해해주시면, 장기적으로 큰 도움이 되실꺼예요~~

질문하시기 전에, 다음 내용을 확인해주시면 훨씬 도움이 되실꺼예요.

질문 전 검색은 필수! google.co.kr 에서 질문에 대해 검색해보세요! 에러 메시지는 맨 마지막 라인을 복사해서 구글에서 검색해보시고, 질문에 대해서는 질문 관련 키워드들을 조합해서 구글에서 검색해보세요. 개발자들은 모두 이를 통해, 답변을 얻습니다. 한발짝 나아가시려면, 반드시 이런 연습이 꼭 필요합니다. 사실 검색 없이 질문을 통해, 바로 답을 얻는 부분은 장기적으로는 큰 의미가 없어요. 궁극적으로는 프로그래밍은 답을 찾는 연습을 하셔야 합니다. 저는 한가지 확인이 필요한 사안을 위해, 20 ~ 30분 검색과 10개 이상의 블로그를 찾아보는 일을 하루에도 한두번씩 한답니다. 검색이 처음이신 분들은 개발자를 위한 정보 검색 팁을 참고하시면 훨씬 성장하시는데 도움이 되실 것입니다.

잔재미코딩 Dave Lee 드림