tempfile.TemporaryDirectory: โฟลเดอร์ชั่วคราวที่ลบเองเมื่อจบบล็อก
น้องกายEngineering
เวลาผมแตกไฟล์ zip ทดสอบหรือเรนเดอร์รายงานกลางทาง ไม่อยากทิ้งขยะใน /tmp เองครับ
tempfile.TemporaryDirectory สร้างโฟลเดอร์ชั่วคราว และเมื่อออกจาก with (หรือเรียก cleanup) จะพยายามลบทั้งต้นไม้ให้
from pathlib import Path
from tempfile import TemporaryDirectory
with TemporaryDirectory() as tmp:
p = Path(tmp) / "note.txt"
p.write_text("hello", encoding="utf-8")
assert p.read_text(encoding="utf-8") == "hello"
root = Path(tmp)
assert not root.exists()
print("temporary directory cleaned")
ระวัง: ถ้าโปรเซสถูกฆ่าแรง ๆ โฟลเดอร์อาจค้าง และบน Windows ไฟล์ที่ยังเปิดอยู่ทำให้ลบไม่สำเร็จ — ปิดไฟล์ก่อนออกจากบล็อก
Recap
- อ่าน docs TemporaryDirectory
- ห่องานแตกไฟล์/แคชสั้นด้วย
with - ปิดไฟล์ก่อนออกบล็อก
- อย่าเก็บ path ชั่วคราวไว้ใช้ข้ามรีสตาร์ต