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