표준 타입 힌트로 API를 구축하고 자동 검증, OpenAPI 문서, 높은 성능을 제공하는 Python 웹 프레임워크입니다.
Tinche/aiofiles
이벤트 루프를 멈추지 않도록 블로킹 로컬 파일 IO와 os, tempfile, pathlib 작업을 스레드 풀에서 실행하는 asyncio 호환 라이브러리입니다.
- 스타
- 3,270
- 포크
- 182
- 열린 이슈
- 66
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
aiofiles는 asyncio 애플리케이션에서 로컬 파일을 읽고 쓸 수 있게 해 주는 Python 라이브러리입니다. 일반적인 파일 IO는 실행 중인 스레드를 블로킹해 이벤트 루프를 멈출 수 있습니다. aiofiles는 read, write, seek 같은 메서드가 코루틴인 비동기 파일 객체를 제공하며, 실제 작업은 스레드 풀 executor에 위임합니다.
API는 내장 open()과 거의 동일해 기존 코드를 쉽게 전환할 수 있고, async for로 파일의 각 줄을 순회할 수 있습니다. 패키지에는 tempfile 모듈과 파일 및 디렉터리를 다루는 os 함수의 비동기 래퍼, 그리고 파일 시스템 메서드를 await할 수 있는 pathlib.Path 대체 구현도 포함되어 있습니다.
pip install aiofiles로 설치할 수 있습니다. 프로젝트 라이선스는 Apache-2.0이며 테스트는 tox로 실행합니다.
핵심 기능
- 01내장 open()과 유사한 API를 제공하는 비동기 파일 객체
- 02블로킹 파일 작업을 스레드 풀 executor에서 실행
- 03async for를 사용한 파일 줄의 비동기 순회
- 04tempfile 및 일반적인 os 파일 함수의 비동기 래퍼
- 05await 가능한 파일 시스템 메서드를 갖춘 비동기 pathlib.Path
활용 사례
- asyncio 웹 서버에서 요청을 블로킹하지 않고 로그 및 데이터 파일 읽고 쓰기
- 비동기 작업 안에서 임시 파일이나 디렉터리 만들기
- pathlib 스타일 호출로 디렉터리 트리를 비동기적으로 탐색하기
빠른 시작
- 1
PyPI에서 aiofiles를 설치합니다
pip install aiofiles - 2
aiofiles.open으로 파일을 비동기적으로 열고 읽기 작업을 await합니다
사용 전 알아둘 점
- 파일 작업은 스레드 풀에서 실행되므로 OS 수준에서 진정한 논블로킹 방식은 아닙니다.
토픽
자주 묻는 질문
- aiofiles은(는) 무엇인가요?
- 이벤트 루프를 멈추지 않도록 블로킹 로컬 파일 IO와 os, tempfile, pathlib 작업을 스레드 풀에서 실행하는 asyncio 호환 라이브러리입니다. aiofiles는 asyncio 애플리케이션에서 로컬 파일을 읽고 쓸 수 있게 해 주는 Python 라이브러리입니다. 일반적인 파일 IO는 실행 중인 스레드를 블로킹해 이벤트 루프를 멈출 수 있습니다. aiofiles는 read, write, seek 같은 메서드가 코루틴인 비동기 파일 객체를 제공하며, 실제 작업은 스레드 풀 executor에 위임합니다.
- aiofiles은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- aiofiles은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- aiofiles은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. aiofiles의 마지막 커밋은 2026년 10월 21일입니다.
- aiofiles은(는) 어디에 사용할 수 있나요?
- asyncio 웹 서버에서 요청을 블로킹하지 않고 로그 및 데이터 파일 읽고 쓰기 비동기 작업 안에서 임시 파일이나 디렉터리 만들기 pathlib 스타일 호출로 디렉터리 트리를 비동기적으로 탐색하기
- aiofiles는 어떻게 설치하나요?
- PyPI에서 aiofiles를 설치합니다: pip install aiofiles aiofiles.open으로 파일을 비동기적으로 열고 읽기 작업을 await합니다
- aiofiles은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Tinche/aiofiles
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Redis 또는 메모리 저장소를 사용하는 Fixed Window, Sliding Window, Token Bucket, Leaky Bucket, GCRA 알고리즘 기반 Python 속도 제한 라이브러리입니다.
표준 라이브러리를 확장하는 추가 기능 230여 개를 제공하는 순수 Python 유틸리티 라이브러리로, 의존성이 없습니다.
Telegram Bot API를 위한 순수 Python 비동기 래퍼로, 봇을 만들 수 있는 고수준 클래스가 telegram.ext에 포함되어 있습니다.
브라우저의 TLS, JA3, HTTP/2 지문을 흉내 내 차단을 우회할 수 있는 curl 기반 Python HTTP 클라이언트입니다.
Python에서 비동기 웹 서비스와 API를 구축하기 위한 경량 ASGI 프레임워크 및 툴킷입니다.