IT/앱사용방법

파이썬 자원해제 방법(예시 포함)

볼통통알파카 2022. 12. 31. 22:32
반응형

파이썬 자원해제 해야 하는 이유

특정 파일을 사용하게 되면 open() 함수를 많이 사용하는데 유한한 메모리 자원을 할당받아 사용하고 있는 일부 서버에는 메모리 부담을 가중시키기 때문에 사용하지 않는 부분에서 close() 함수를 이용해 자원을 반환시켜야 한다.

보통 while이나 try 문을 돌다가 예외 상황이 발생했을 때 close() 함수를 하지 않아 자원을 그대로 소모하는 경우가 있다.

파이썬 자원해제 예시

import sys
def get_config():
 lines = None
 try:
    f = open('config.files')
    lines = f.readlines()
 except Exception as e:
    ...
 finally:
    f.close()
 return lines
 
try 문을 사용할 때 예외 상황이 발생하면 close 함수가 작동하지 않고 빠져나오는 경우가 있다.
이를 방지하기 위해 finaly를 사용해서 시스템에 자원 반환을 시켜주면 된다.

아니면 with문을 사용해서 자원을 자동으로 반납하는 방식으로 코드를 작성해도 좋다.

with open('불러올 파일') as file:
	print(file.read())

with문은 해당 부분을 작동하고 close() 함수를 호출해서 자동으로 파일을 닫는다.

 

정리

1. 자원해제 코드를 만들 땐 finally에서 close() 함수를 호출해 자원을 반환한다.

2. with opne(호출파일, 모드) as 파일객체 : 문을 활용하여 자동으로 호출했던 파일을 닫게 한다.

반응형