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

จะบังคับให้เขียนไฟล์ด้วย filedescriptor fd ไปยังดิสก์โดยใช้ Python ได้อย่างไร


คุณต้องใช้ฟังก์ชัน fdatasync(fd) เพื่อบังคับให้เขียนไฟล์ด้วย filedescriptor fd ไปยังดิสก์ ไม่ได้บังคับให้อัปเดตข้อมูลเมตา โปรดทราบด้วยว่ามันใช้ได้เฉพาะบน Unix เท่านั้น

โซลูชันข้ามแพลตฟอร์มเพิ่มเติมคือการใช้ fsync(fd) เนื่องจากบังคับให้เขียนไฟล์ด้วย filedescriptor fd ไปยังดิสก์ บน Unix จะเรียกฟังก์ชัน native fsync() บน Windows ฟังก์ชัน MS _commit()

ตัวอย่าง

import os, sys
# Open a file
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )
os.write(fd, "This is test")
# Now you can use fsync() method.
os.fsync(fd)
# Now read this file from the beginning
os.lseek(fd, 0, 0)
str = os.read(fd, 100)
print "Read String is : ", str
os.close( fd )

ผลลัพธ์

เมื่อเรารันโปรแกรมด้านบน มันจะให้ผลลัพธ์ดังต่อไปนี้:

Read String is :  This is test