Repolode
Tinche

Tinche/aiofiles

Библиотека с поддержкой asyncio, которая оборачивает блокирующие операции с локальными файлами, os, tempfile и pathlib и выполняет их в пуле потоков, не останавливая цикл событий.

Звёзды
3,270
Форки
182
Открытые issues
66
Последний коммит
4 дня назад

Что это?

aiofiles — библиотека Python для чтения и записи локальных файлов в приложениях на asyncio. Обычные операции с файлами блокируют выполняющий их поток и могут останавливать цикл событий. aiofiles предоставляет асинхронные файловые объекты: их методы, например read, write и seek, являются корутинами и передают фактическую работу исполнителю в пуле потоков.

API библиотеки почти полностью повторяет встроенную функцию open(), поэтому существующий код легко адаптировать. Для перебора строк поддерживается async for. В пакет также входят асинхронные обёртки для модуля tempfile и функций os, работающих с файлами и каталогами, а также замена pathlib.Path, методы работы с файловой системой которой можно вызывать через await.

Установить пакет можно командой pip install aiofiles. Проект распространяется по лицензии Apache-2.0, а тесты запускаются с помощью tox.

Ключевые возможности

  • 01Асинхронные файловые объекты с API, похожим на встроенный open()
  • 02Блокирующие операции с файлами выполняются в исполнителе в пуле потоков
  • 03Асинхронный перебор строк файла с помощью async for
  • 04Асинхронные обёртки для tempfile и распространённых файловых функций os
  • 05Асинхронный pathlib.Path с методами работы с файловой системой, вызываемыми через await

Сценарии использования

  • Чтение и запись файлов журналов и данных в веб-сервере на asyncio без блокировки запросов
  • Создание временных файлов и каталогов в асинхронных задачах
  • Асинхронный обход деревьев каталогов с вызовами в стиле pathlib

Быстрый старт

  1. 1

    Установите aiofiles из PyPI

    pip install aiofiles
  2. 2

    Откройте файл асинхронно с помощью aiofiles.open и используйте await для чтения

Что важно знать

  • Операции с файлами выполняются в пуле потоков, поэтому на уровне ОС они не являются по-настоящему неблокирующими.

Темы

Частые вопросы

Что такое aiofiles?
Библиотека с поддержкой asyncio, которая оборачивает блокирующие операции с локальными файлами, os, tempfile и pathlib и выполняет их в пуле потоков, не останавливая цикл событий. aiofiles — библиотека Python для чтения и записи локальных файлов в приложениях на asyncio. Обычные операции с файлами блокируют выполняющий их поток и могут останавливать цикл событий. aiofiles предоставляет асинхронные файловые объекты: их методы, например read, write и seek, являются корутинами и передают фактическую работу исполнителю в пуле потоков.
aiofiles можно использовать бесплатно? Какая у него лицензия?
aiofiles распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
aiofiles всё ещё поддерживается?
Активно поддерживается. Последний коммит в aiofiles — 21 окт. 2026 г..
Для чего можно использовать aiofiles?
Чтение и запись файлов журналов и данных в веб-сервере на asyncio без блокировки запросов Создание временных файлов и каталогов в асинхронных задачах Асинхронный обход деревьев каталогов с вызовами в стиле pathlib
Как установить aiofiles?
Установите aiofiles из PyPI: pip install aiofiles Откройте файл асинхронно с помощью aiofiles.open и используйте await для чтения
Где скачать aiofiles?
Исходный код и инструкции по установке — на GitHub: https://github.com/Tinche/aiofiles

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Python-фреймворк для создания API со стандартными аннотациями типов, автоматической валидацией, документацией OpenAPI и высокой производительностью.

104,1 тыс.+472 за неделю10,1 тыс.PythonMITОбновлён вчера