ไฟล์ชั่วคราว โมดูลในไลบรารีมาตรฐานกำหนดฟังก์ชันสำหรับการสร้างไฟล์และไดเร็กทอรีชั่วคราว พวกมันถูกสร้างขึ้นในไดเร็กทอรีชั่วคราวที่กำหนดโดยระบบไฟล์ของระบบปฏิบัติการ ตัวอย่างเช่น ภายใต้ Windows โฟลเดอร์ temp จะอยู่ใน profile/AppData/Local/Temp ในขณะที่ linux ไฟล์ชั่วคราวจะถูกเก็บไว้ในไดเร็กทอรี /tmp
ฟังก์ชันต่อไปนี้ถูกกำหนดไว้ในโมดูล tempfile
ไฟล์ชั่วคราว()
ฟังก์ชันนี้สร้างไฟล์ชั่วคราวในไดเร็กทอรี temp และส่งคืนอ็อบเจ็กต์ไฟล์ คล้ายกับฟังก์ชัน open() ในตัว ไฟล์ถูกเปิดในโหมด wb+ โดยค่าเริ่มต้น ซึ่งหมายความว่าสามารถใช้อ่าน/เขียนข้อมูลไบนารีในไฟล์ได้พร้อมกัน สิ่งที่สำคัญ รายการของไฟล์ในโฟลเดอร์ temp จะถูกลบออกทันทีที่วัตถุไฟล์ถูกปิด รหัสต่อไปนี้แสดงการใช้งานฟังก์ชัน TemporaryFile()
>>> import tempfile >>> f = tempfile.TemporaryFile() >>> f.write(b'Welcome to TutorialsPoint') >>> import os >>> f.seek(os.SEEK_SET) >>> f.read() b'Welcome to TutorialsPoint' >>> f.close()
ตัวอย่างต่อไปนี้จะเปิดวัตถุ TemporaryFile ในโหมด w+ เพื่อเขียนแล้วอ่านข้อมูลข้อความแทนข้อมูลไบนารี
>>> ff = tempfile.TemporaryFile(mode = 'w+') >>> ff.write('hello world') >>> ff.seek(0) >>> ff.read() 'hello world' >>> ff.close()
NamedTemporaryFile()
ฟังก์ชันนี้คล้ายกับฟังก์ชัน TemporaryFile() ข้อแตกต่างเพียงอย่างเดียวคือไฟล์ที่มีชื่อไฟล์สุ่มจะมองเห็นได้ในโฟลเดอร์ temp ที่กำหนดของระบบปฏิบัติการ ชื่อสามารถเรียกได้ตามแอตทริบิวต์ชื่อของวัตถุไฟล์ ไฟล์นี้จะถูกลบออกทันทีเมื่อปิด
>>> fo = tempfile.NamedTemporaryFile() >>> fo.name 'C:\\Users\\acer\\AppData\\Local\\Temp\\tmpipreok8q' >>> fo.close()
ไดเรกทอรีชั่วคราว()
ฟังก์ชันนี้สร้างไดเร็กทอรีชั่วคราว คุณสามารถเลือกตำแหน่งของไดเร็กทอรีชั่วคราวนี้โดยระบุพารามิเตอร์ dir คำสั่งต่อไปนี้จะสร้างไดเร็กทอรีชั่วคราวในโฟลเดอร์ C:\\python36
>>> f = tempfile.TemporaryDirectory(dir = "C:/python36") <TemporaryDirectory 'C:/python36\\ tmp9wrjtxc_'>
ไดเร็กทอรีที่สร้างจะปรากฏในโฟลเดอร์ dir1 มันถูกลบออกโดยการเรียกฟังก์ชัน cleanup() บนวัตถุไดเร็กทอรี
>>> f.name 'C:/python36\\tmp9wrjtxc_' >>> f.cleanup()
mkstemp()
การแยกนี้ยังสร้างไฟล์ชั่วคราว คล้ายกับฟังก์ชัน TemporaryFile() นอกจากนี้ยังมีพารามิเตอร์ส่วนต่อท้ายและคำนำหน้าเพื่อเพิ่มด้วยไฟล์ชั่วคราวที่สร้างขึ้น ไม่เหมือนกับกรณีของ TemporaryFile() ไฟล์ที่สร้างขึ้นจะไม่ถูกลบโดยอัตโนมัติ ควรลบออกด้วยตนเอง
>>> f = tempfile.mkstemp(suffix = '.tp') C:\Users\acer\AppData\Local\Temp\tmpbljk6ku8.tp
mkdtemp()
ฟังก์ชันนี้ยังสร้างไดเร็กทอรีชั่วคราวในโฟลเดอร์ temp ของระบบปฏิบัติการและส่งคืนชื่อพาธแบบสัมบูรณ์ หากต้องการกำหนดตำแหน่งของการสร้างอย่างชัดเจน ให้ใช้พารามิเตอร์ dir โฟลเดอร์นี้จะไม่ถูกลบโดยอัตโนมัติเช่นกัน
>>> tempfile.mkdtemp(dir = "c:/python36") 'c:/python36\\tmpruxmm66u'
gettempdir()
ฟังก์ชันนี้ส่งคืนชื่อของไดเร็กทอรีเพื่อจัดเก็บไฟล์ชั่วคราว โดยทั่วไป ชื่อนี้ได้มาจากตัวแปรสภาพแวดล้อม tempdir บนแพลตฟอร์ม Windows โดยทั่วไปจะเป็น user/AppData/Local/Temp หรือ windowsdir/temp หรือ systemdrive/temp บน linux ปกติจะเป็น /tmp ไดเร็กทอรีนี้ใช้เป็นค่าดีฟอลต์ของพารามิเตอร์ dir
>>> tempfile.gettempdir() 'C:\\Users\\acer\\AppData\\Local\\Temp'
ในบทความนี้มีการอธิบายฟังก์ชันในโมดูล tempfile