Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะปิดไฟล์ที่เปิดอยู่ทั้งหมดโดยใช้ 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()