当前位置:  开发笔记 > 编程语言 > 正文

asyncio是否支持文件操作的异步I/O?

如何解决《asyncio是否支持文件操作的异步I/O?》经验,为你挑选了3个好方法。

asyncio是否支持文件操作的异步I/O?如果是,我如何在Python 3.5中使用async/await语法代码?



1> Andrew Svetl..:

大多数操作系统不支持异步文件操作.这就是为什么asyncio不支持他们.

有关进一步说明,请参阅asyncio wiki.


他们*模仿*它,这有所作为。

2> Dima Tisnek..:

这取决于您使用的库.

curio提供此功能,https://curio.readthedocs.io/en/latest/reference.html#module-curio.file

plain asyncio没有,但是有第三方库,例如https://github.com/Tinche/aiofiles(这是在线程中隔离的真正同步文件访问)

现代操作系统确实提供了异步文件原语,但这些原语是多种多样的,因此每个都需要自己的实现.请比较:

http://man7.org/linux/man-pages/man7/aio.7.html

https://msdn.microsoft.com/en-us/library/windows/desktop/aa365683(v=vs.85).aspx

https://developer.apple.com/library/content/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/TechniquesforReadingandWritingCustomFiles/TechniquesforReadingandWritingCustomFiles.html

我怀疑有人会很快从基础异步io中删除node.js并创建一个不错的Python库,或者也许已经有人.


据我所知,你提到的所有选项都使用线程(curio,aiofiles,glib的aio实现,甚至Windows Overlapped I/O都使用了一个线程池).

3> 小智..:

asyncio不支持这个.但是, aiofiles支持这一点.请看一看.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有