Repolode
Tinche

Tinche/aiofiles

为 asyncio 应用提供异步本地文件操作,将阻塞的文件 IO 放入线程池执行,避免阻塞事件循环。

Star
3,269
Fork
182
未关闭 Issue
66
最近提交
3天前

这是什么?

aiofiles 是一个用于 asyncio 应用中读写本地文件的 Python 库。普通文件 IO 会阻塞当前线程,进而拖慢事件循环。aiofiles 提供异步文件对象,read、write、seek 等方法都是协程,实际工作交给线程池执行。

其接口与内置 open() 高度一致,迁移现有代码比较简单,也支持 async for 逐行迭代。此外,库中还包含 tempfile 模块的异步封装、针对文件和目录的 os 函数异步版本,以及可等待文件系统操作的 pathlib.Path 替代类。

通过 pip install aiofiles 即可安装,项目采用 Apache-2.0 许可证。

核心功能

  • 01异步文件对象,接口与内置 open() 相似
  • 02阻塞的文件操作在线程池中执行
  • 03支持使用 async for 逐行异步遍历文件
  • 04提供 tempfile 与常用文件 os 函数的异步封装
  • 05提供可等待文件系统方法的异步 pathlib.Path

适用场景

  • 在 asyncio Web 服务中读写日志或数据文件,避免阻塞请求处理
  • 在异步任务中创建临时文件或临时目录
  • 使用类 pathlib 的调用方式异步遍历目录树

快速上手

  1. 1

    从 PyPI 安装 aiofiles

    pip install aiofiles
  2. 2

    使用 aiofiles.open 异步打开文件并 await 读取

使用前须知

  • 文件操作在线程池中运行,因此在操作系统层面并非真正的非阻塞。

标签

常见问题

aiofiles 是什么?
为 asyncio 应用提供异步本地文件操作,将阻塞的文件 IO 放入线程池执行,避免阻塞事件循环。 aiofiles 是一个用于 asyncio 应用中读写本地文件的 Python 库。普通文件 IO 会阻塞当前线程,进而拖慢事件循环。aiofiles 提供异步文件对象,read、write、seek 等方法都是协程,实际工作交给线程池执行。
aiofiles 可以免费使用吗?用的什么许可证?
aiofiles 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
aiofiles 还在维护吗?
活跃维护中。aiofiles 最近一次提交是在 2026年10月21日。
aiofiles 适合用来做什么?
在 asyncio Web 服务中读写日志或数据文件,避免阻塞请求处理 在异步任务中创建临时文件或临时目录 使用类 pathlib 的调用方式异步遍历目录树
aiofiles 怎么安装和运行?
从 PyPI 安装 aiofiles: pip install aiofiles 使用 aiofiles.open 异步打开文件并 await 读取
在哪里获取 aiofiles?
源代码和安装说明在 GitHub 上:https://github.com/Tinche/aiofiles

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目