파일을 열거나 할 때
파일을 열고, 작업을 하고, 파일을 닫는 작업을 해주어야 합니다.
먼저 같단하게 텍스트 파일(txt)을 열고
[ HELLO ]라고 작성한 후
파일을 다시 닫는 코드를 살펴보겠습니다.
※ 파이썬에서 파일을 읽기, 쓰기에 대한 내용은 여기서 확인하실 수 있습니다.
f = open('test.txt', 'w')
f.write('Hello')
f.close()
위 코드를 실행하면
[ test.txt ]파일이 생성되고, 해당 파일을 열어보면
[ Hello ]라고 적혀 있는 것을 보실 수 있습니다.
만약에 어떠한 개체를 열고 작업한 후에 닫지 않는다면,
프로그램이 제대로 작동하지 않거나,
작동을 하더라도
메모리를 더 잡아 먹거나, 파일이 손상되거나하는 등의 예기치 못한
문제가 발생할 수도 있습니다.
with 구문은 해당 개체를 사용한 후 자동으로 닫아주는 기능을 수행하여
코드를 작성하는 사람이 신경써야 할 것을 줄여줍니다.
이번에는 with 문을 사용한 코드를 살펴보겠습니다.
with문을 사용하지 않은 코드와 비교해 보시기 바랍니다.
[ with 문을 사용하지 않은 코드 ]
f = open('test.txt', 'w')
f.write('Hello')
f.close()
[ with 문을 사용한 코드 ]
with open('test.txt', 'w') as f:
f.write('Hello')
이렇게 하면 with 블록에서 벗어날 때 자동으로 close 메서드가 호출되므로
따로 명시하지 않아도 됩니다.
또한 예외가 발생해도 `__exit__` 메서드가 실행되므로 안전하게 리소스를 해제할 수 있습니다.
if 문과 함께 사용하여
어떤 조건이 만족했을 때 해당 코드가 실행되게도 할 수 있습니다.
if True:
with open('test.txt', 'w') as f:
f.write('Hello')
with 구문을 사용하면 어떤 개체를 열었을 때
닫는 구문을 명시하지 않아되며,
해당 코드 안에서 오류가 발생하더라도 처리가 용이해집니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.
'파이썬(Python)' 카테고리의 다른 글
[ Basic ] 파이썬 for 문에 대한 다양한 활용 (0) | 2023.03.24 |
---|---|
[ Tkinter, Re ] 텍스트 파일(txt)을 불러와 공백 제거하기 (0) | 2023.03.19 |
[ Basic ] 파이썬 if __name__ == "__main__" 구문 (0) | 2023.03.16 |
[ Basic ] 파이썬(python) lambda 함수 (0) | 2023.03.09 |
[ Basic ] Python(파이썬) sorted 함수 (0) | 2023.03.08 |