Python:
สร้างไฟล์ชั่วคราว
วิธีการ:
โมดูล tempfile
ของ Python ถูกสร้างมาเพื่องานนี้ ลองดูวิธีการทำงานดังนี้:
import tempfile
# สร้างไฟล์ชั่วคราวและเขียนบางอย่างลงไป
with tempfile.TemporaryFile(mode='w+t') as tf:
# เขียนสตริงลงไปในไฟล์ชั่วคราว
tf.write('Python is fun!')
# กลับไปที่จุดเริ่มต้นของไฟล์ก่อนอ่าน
tf.seek(0)
# อ่านสิ่งที่เราเขียน
print(tf.read()) # แสดงผลลัพธ์: Python is fun!
# และเช่นนั้น ไฟล์ก็จะหายไปเมื่อคุณอยู่นอกบล็อก
โค้ดนี้ใช้ context manager เพื่อจัดการไฟล์ ซึ่งจะทำการทำความสะอาดหลังจากตัวเองอัตโนมัติ ไม่มีไฟล์ค้างเหลือ!
ลงลึก:
ไฟล์ชั่วคราวไม่ใช่เรื่องใหม่ พวกมันถูกใช้มาตั้งแต่รุ่งอรุณของการคอมพิวเตอร์เพื่อเก็บข้อมูลที่เป็นองค์ประกอบชั่วครวด โมดูล tempfile
ของ Python จัดการรายละเอียดที่ซับซ้อนเช่นการสร้างชื่อที่ไม่ซ้ำกันและการลบไฟล์เมื่อเสร็จสิ้น หากคุณต้องการควบคุมเพิ่มเติม มี NamedTemporaryFile
ซึ่งคุณสามารถอ้างอิงโดยชื่อได้ในชีวิตสั้นๆ ของมัน แต่จำไว้ ว่าจุดประสงค์ของมันคือการเป็นชั่วคราว:
import tempfile
# สร้างไฟล์ชั่วคราวที่มีชื่อ
with tempfile.NamedTemporaryFile(delete=True) as ntf:
print(f'Temp file name is: {ntf.name}') # มันมีชื่อจริงๆ!
# แต่อย่างไรก็ตาม มันจะหายไปหลังจากใช้งาน
แล้วทำไมไม่ใช้ไฟล์ปกติ? ง่ายๆ: การใช้ tempfile
ช่วยให้คุณไม่ต้องพบกับความยุ่งเหยิงและความขัดแย้งที่เป็นไปได้ — ลองนึกภาพสคริปต์ของคุณทำงานซ้ำแล้วชื่อไฟล์เดียวกันถูกใช้ซ้ำ น่ายุ่งยาก ใช่ไหม?
ดูเพิ่มเติม:
- เอกสารการใช้งาน tempfile ของ Python: https://docs.python.org/3/library/tempfile.html
- บทเรียนเกี่ยวกับไอ/โอไฟล์ใน Python: https://realpython.com/read-write-files-python/