Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để đóng tất cả các tệp đã mở bằng Python?

Không có cách nào trong python nguyên bản để theo dõi tất cả các tệp đã mở. Để làm điều đó, bạn nên tự theo dõi tất cả các tệp hoặc luôn sử dụng câu lệnh with để mở tệp. Lệnh này sẽ tự động đóng tệp khi tệp vượt ra khỏi phạm vi hoặc gặp lỗi.

Ví dụ

with open('file.txt') as f:
    # do something with f here

Bạn cũng có thể tạo một lớp để đóng tất cả các tệp và tạo một hàm đóng duy nhất để đóng tất cả các tệp.

Ví dụ

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()