让“文件 IO”变成异步 的 Python 第三方库

41 阅读1分钟

aiofiles

让“文件 IO”变成异步 的 Python 第三方库

把原本会 阻塞事件循环 的磁盘读写操作,挪到后台线程池(或 Linux 的 io_uring),从而让你在用 asyncio 写高并发代码时,不会因为等硬盘而卡住整个程序

pip install aiofiles
| 同步              | 异步(aiofiles)       |
| ---------------- | ---------------------- |
| `open()`         | `aiofiles.open()`      |
| `f.read()`       | `await f.read()`       |
| `f.readline()`   | `await f.readline()`   |
| `f.write(s)`     | `await f.write(s)`     |
| `for line in f:` | `async for line in f:` |
  • 底层仍是 线程池(除 io_uring 模式),不是真正的“异步系统调用”。
  • 对于 超高并发 + 超大文件,考虑结合 aiofiles + 内存映射或分块读取。
  • Windows 上 io_uring 不可用,默认线程池方案足够大部分 Web 场景。