파이썬에서는 기본적으로 열려 있는 모든 파일을 추적할 수 있는 방법이 없습니다. 그렇게 하려면 모든 파일을 직접 추적하거나 항상 with 문을 사용하여 파일이 범위를 벗어나거나 오류가 발생할 때 파일을 자동으로 닫는 파일을 열어야 합니다.
예를 들어
with open('file.txt') as f:
# do something with f here 모든 파일을 묶는 클래스를 만들고 모든 파일을 닫는 단일 닫기 기능을 만들 수도 있습니다.
예를 들어
class OpenFiles():
def __init__(self):
self.files = []
def open(self, file_name):
f = open(file_name)
self.files.append(f)
return f
def close(self):
list(map(lambda f: f.close(), self.files))
files = OpenFiles()
# use open method
foo = files.open("text.txt", "r")
# close all files
files.close()