📅  最后修改于: 2023-12-03 15:04:21.517000             🧑  作者: Mango
在 Python 的 os 模块中,os.sendfile() 方法用于在两个文件描述符之间直接传输数据,而无需在用户空间缓冲区中进行数据拷贝。这种技术被称为零拷贝传输。
os.sendfile(out_fd, in_fd, offset, count)
在成功的情况下,该方法返回传输的字节数。否则,将引发 OSError。
以下代码演示了如何将文件a.txt传输到文件b.txt中。
import os
with open('a.txt', 'rb') as in_file:
with open('b.txt', 'wb') as out_file:
sent = os.sendfile(out_file.fileno(), in_file.fileno(), 0, os.path.getsize('a.txt'))
print('Sent {} bytes from a.txt to b.txt.'.format(sent))
执行上述代码后,输出结果如下:
Sent 12345 bytes from a.txt to b.txt.