Does asyncio supports asynchronous I/O for file operations? If yes, how I can use this in Python 3.5 with async/await syntax code?
Most operating systems don't support asynchronous file operations.
That's why asyncio
doesn't support them either.
See the asyncio wiki for further explanation.
That depends what library you use.
curio
offers this functionality, https://curio.readthedocs.io/en/latest/reference.html#module-curio.file
plain asyncio
doesn't, but there are 3rd party libraries, e.g. https://github.com/Tinche/aiofiles (which is really synchronous file access isolated in threads)
Modern operating systems do provide asynchronous file primitives, but these are varied, thus each would need own implementation. Please compare:
- 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
I suspect someone will soon rip out underlying async io from node.js
and make a decent Python library, or perhaps someone already has.
asyncio does not have support for this. However, aiofiles supports just this. Please have a look.
来源:https://stackoverflow.com/questions/34699948/does-asyncio-supports-asynchronous-i-o-for-file-operations