首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python是否支持零拷贝I/O?

Python是否支持零拷贝I/O?
EN

Stack Overflow用户
提问于 2011-09-18 00:23:08
回答 2查看 2.8K关注 0票数 13

我有两个打开的文件对象,destsrc。打开文件对象dest以进行写入,并将查找位置放置在文件内的某个偏移处,并且打开文件对象src以进行读取。我需要做的只是从src中的当前位置读取到EOF,并尽快将内容传输到dest

如果我用Java语言编程,我可以利用FileChannel#transferTo()方法来执行零拷贝文件I/O。

Python也支持零拷贝吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-18 00:39:36

从3.3版本开始,Python就有了os.sendfile,它可以连接到各种Unix变体的sendfile(2)零拷贝I/O接口。它对文件描述符进行操作,而不是对一般的类似文件的对象进行操作。对于较老的蟒蛇,有py-sendfile

票数 11
EN

Stack Overflow用户

发布于 2020-12-29 20:04:15

从Python3.8开始,您可以使用shutil.copyfile (以及来自shutil的其他工具),如果可能,它将在内部使用零复制,如os.sendfile,如果不可能,则退回到简单的读写循环。

详情请参见the shutil docs。或者issue 33671 (Efficient zero-copy for shutil.copy* functions (Linux, OSX and Win))。和the corresponding (merged) pull request

您可能还会对写入时复制支持或服务器端复制支持感兴趣。参见herehereos.copy_file_range (从Python3.8开始)可以做到这一点。请参阅issue 37159 (Use copy_file_range() in shutil.copyfile()) (可能是Python3.9或3.10)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7456181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档