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

สร้างไฟล์ชั่วคราวและไดเร็กทอรีโดยใช้ Python


ไฟล์ชั่วคราว โมดูลในไลบรารีมาตรฐานกำหนดฟังก์ชันสำหรับการสร้างไฟล์และไดเร็กทอรีชั่วคราว พวกมันถูกสร้างขึ้นในไดเร็กทอรีชั่วคราวที่กำหนดโดยระบบไฟล์ของระบบปฏิบัติการ ตัวอย่างเช่น ภายใต้ 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