• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

list를 이용해서 파일을 불러올때의 에러에 관하여

21.04.30 23:10 작성 조회수 2.63k

0


score_file = open("score.txt""r"encoding="utf8")
lines = score_file.readlines # list 형태로 저장
for line in lines:
    print(line, end="")

score_file.close()

강의랑 똑같이 썼는데

line 37, in <module>
    for line in lines:
TypeError: 'builtin_function_or_method' object is not iterable

이라고 에러가 뜨는데 제가 어딜 잘못해서 에러가 나오는지 모르겠습니다.

혹 알려주시면 감사하겠습니다.

답변 1

답변을 작성해보세요.

0

김경민님의 프로필

김경민

2021.05.01

안녕하세요!

for문 한 줄 위에, 파일로부터 여러 줄을 읽어 lines

에 저장하는 과정에서 오류가 난 것으로 보입니다.

파이썬에서는 함수 또한 변수처럼 사용할수 있기에

(일급함수 라고 합니다. 많은 현대 언어에서 사용하는 개념입니다.)

lines = score_file.readlines

와 같이 함수 호출 readlines(  ) 형태가 아닌 함수 이름 readlines

그대로 대입하시면, lines는 함수가 되어 lines( ) 처럼 호출하실 수 있습니다.

이 상황에서 for문에서 lines를 대상으로 반복을 수행하려고 하니

iterable하지 않다, 즉 for문으로 반복을 수행할 수 없는 대상=함수 라는

오류가 뜬 것 입니다.

여기서는 lines 를 함수로 사용하시려는 의도가 아니라

읽어온 line들을 저장하는 변수로 사용하시려고 한 것 같습니다.