파일 read할 때 open()과 with statement의 차이점은 무엇인가요?

조회수 847회

파일을 read할 때, 보통 open(“filename”, “r”) 혹은 with open(“filename”) as file를 사용하는데, 이 둘의 큰 차이점이 있는 건가요? 외국사이트에 It(with statement) is designed to provide much cleaner syntax and exceptions handling when you are working with code. 라고 되어 있는데, 이것 말고 다른 차이도 있나요?!

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • python 에서 with statement가 사용되면 context manager에 의해 해당 object의 __enter__(), __exit__()를 자동으로 호출하여 예외가 발생하거나 개발자가 실수로 resource를 release 하는 것을 잊어먹더라도 정상적으로 정리되도록 보장해줍니다.

    즉, try / except / finally 를 명시적으로 사용한 것과 같은 효과를 얻을 수 있는 것이죠.

    그냥 open(“filename”, “r”) 을 사용한 경우에는 반드시 해당 파일을 사용한 뒤에 close 해줘야 합니다.

    하지만 file 객체에 __enter__(), __exit__() 가 구현되어 있어서 with statement를 사용하면 file 객체를 사용한 뒤 with 블럭을 빠져나갈 때 close가 알아서 되기 때문에 편리합니다.

    p.s

    질문하실 때 적어도 현재 사용하는 언어 정도는 명시해주시기 바랍니다 :D

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)