파이썬에서는 기본적으로 열려 있는 모든 파일을 추적할 수 있는 방법이 없습니다. 그렇게 하려면 모든 파일을 직접 추적하거나 항상 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()