작성
·
26
0
안녕하세요 선생님 질문있습니다.
예제 내용 중, 아래 코드에서 프린트 파일리드를 한 다음에 file.close()로 open한 파일을 닫아줘야 하지 않나요?
물론 예제 코드가 잘 동작하는 것은 확인 했습니다. 다만 저는 append 모드로 파일을 open하기 전에 먼저 열었던 파일을 close 해줘야 하는게 아닌가 해서 질문드립니다~
...
if menu == 1:
file = open(file path, 'r')
print(file.read())
# 이 부분에서 file.close() 해줘야 하는것 아닌가요??
file = open(file path, 'a+')
print()
...
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 정다빈님.
파일을 다루는 데 있어 중요한 것은 열었던 파일을 적절하게 닫아주는 것입니다. 일반적으로 open()
으로 파일을 연 후, 파일의 적절한 활용이 끝났다면 close()
를 호출하여 파일을 닫아주는 것이 좋은 습관입니다. 파일을 닫지 않으면 메모리 누수나 다른 파일 작업 시 충돌이 일어날 수 있습니다.
이번 코드에서도 파일을 읽은 후에 닫지 않고, 또 다른 모드로 파일을 열고 있는 상태인데, 이는 엄밀히 말하면 좋은 관행이 아닙니다. 다만 파이썬의 가비지 컬렉터가 열려있는 파일 객체를 자동으로 닫을 수도 있지만, 명시적으로 file.close()
를 호출해 파일을 닫아 주는 것이 더욱 명확하고 안전한 방법입니다.
관련하여 더 많은 정보를 제공하는 게시물을 확인해보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.