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 场景。