[파이썬] with 문을 사용하여 파일, 네트워크 연결 및 자원 관리를 간단하게 처리하는 방법
with
문은 파이썬에서 파일, 네트워크 연결 및 다른 자원 관리를 간단하게 처리하는 데 사용됩니다. with
문을 사용하면 자원을 열고 사용한 후에 자동으로 닫아주는 등의 작업을 처리할 수 있습니다. 이를 “컨텍스트 관리자”라고도 부릅니다. 아래 예제를 통해 with
문을 사용한 자원 관리를 살펴보겠습니다:
1. 파일 관리:
with
문을 사용하여 파일을 열고 사용한 후 자동으로 닫을 수 있습니다.
with open("example.txt", "r") as file:
contents = file.read()
print(contents)
# 파일이 자동으로 닫힘
2. 네트워크 연결 관리:
네트워크 연결도 with
문을 사용하여 간단하게 관리할 수 있습니다.
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(("www.google.com", 80))
print("Connected to Google")
# 소켓이 자동으로 닫힘
3. 사용자 정의 컨텍스트 관리자:
자원 관리를 위해 사용자 정의 컨텍스트 관리자를 만들 수도 있습니다.
class CustomContext:
def __enter__(self):
print("Entering the context")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Exiting the context")
with CustomContext() as context:
print("Inside the context")
# 컨텍스트가 자동으로 종료됨
with
문은 예외가 발생하더라도 자원을 안전하게 해제해주므로 코드 안정성과 가독성을 향상시키는 데 도움이 됩니다.