항시 파일을 열고, 닫고, 수정하고 등의 행동을 수행할 때엔
완료 후 close()를 해주어야한다.
지금 공부 중인 나도코딩 활용편2 GUI 프로그래밍 중에 보면,
file = open("filename", "r", encoding="utf8") txt.insert(END, file.read()) file.close()
여기에서 문제는 file에서 해당 파일을 찾지 못한다던가,
다른 에러가 발생하게 됐을 땐 close() 까지 도달하지 못하게 된다.
이럴 때 with 를 사용하면 에러와 상관 없이 마지막에 close를 실행시켜준다.
with는 __enter__
와 __exit__
특수 메소드를 가진 객체에 사용 가능하고,
with 문의 형식은 아래와 같다.
with (expression) as (variable): (block)
이걸 현재 공부 중인 코드에 적용을 시키면
with open("filename", "r", encoding="utf8") as file: txt.insert(END, file.read())
이런 코드가 나오게 된다.
기능적인 부분을 빼고 보더라도 더 짧고 알아보기 쉽게 작성 가능하니
잊지 말아야겠다.