Python | os.fdatasync 函数
最近更新时间 2020-12-08 12:28:37
os.fdatasync 函数强制将文件描述符 fd 指定文件写入磁盘。不强制更新元数据。与 os.fsync() 方法不同,它不会强制更新元数据。
该功能在 MacOS 中不可用。
os.fdatasync() 方法比os.fsync() 方法更快,因为它只需要强制一次写入磁盘而不是两次。
文件描述符是一个数字,用于唯一标识计算机操作系统中打开的文件。它描述了数据资源,以及如何访问该资源。
在类Unix操作系统上,默认情况下,前三个文件描述符为STDIN(标准输入 0),STDOUT(标准输出 1)和STDERR(标准错误 2)。
可以用 io.fileno() 可以获得 file object 所对应的文件描述符。需要注意的是,直接使用文件描述符会绕过文件对象的方法,会忽略如数据内部缓冲等情况。
函数定义
os.fdatasync(fd)
# 函数定义
if sys.platform != 'win32':
# Unix only
...
def fdatasync(fd: int) -> None: ... # Unix only, not Mac
...
兼容性:Unix 系统。
参数
- checkfd - 源文件描述符。
返回值
- checkNone - 无。
示例1: - 使用 os.fdatasync() 函数强制将指定文件写入磁盘。
# coding=utf-8
# Python3 代码
# 讲解怎样使用 os.fdatasync() 函数强制将指定文件写入磁盘
# 引入 os 库
import os
# 文件路径
path = "foo.txt"
# 根据路径打开文件
fd = os.open(path, os.O_WRONLY)
# 写入 byte 字符串
os.write(fd, b"foofoofoo")
# 写入的内容可能在缓存中没有写入到磁盘
# 程序结束或者文件描述符关闭时才会写入
# 可以使用 os.fdatasync() 强制写入
os.fdatasync(fd)
print("Force write of file committed successfully")
# Close the file descriptor
os.close(fd)
Force write of file committed successfully