ไม่มีทางที่ 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()