Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python을 사용하여 열린 모든 파일을 닫는 방법은 무엇입니까?

<시간/>

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