Python-фреймворк для создания API со стандартными аннотациями типов, автоматической валидацией, документацией OpenAPI и высокой производительностью.
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
Установите aiofiles из PyPI
pip install aiofiles - 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 с алгоритмами Fixed Window, Sliding Window, Token Bucket, Leaky Bucket и GCRA, хранилищем в Redis или памяти.
Библиотека из более чем 230 утилит на чистом Python, расширяющих стандартную библиотеку и не имеющих внешних зависимостей.
Асинхронная библиотека на чистом Python для Telegram Bot API с высокоуровневыми классами telegram.ext для создания ботов.
HTTP-клиент для Python на базе curl, который имитирует TLS-, JA3- и HTTP/2-отпечатки браузеров, помогая обходить блокировки.
Лёгкий ASGI-фреймворк и набор инструментов для создания асинхронных веб-сервисов и API на Python.