Asynchronous file operations.
Project description
Real asynchronous file operations with asyncio support.
Status
Development - Stable
Features
Code examples
Totally async read and write:
import asyncio
from aiofile import AIOFile, Reader, Writer
async def main(loop):
aio_file = await AIOFile("/tmp/hello.txt", 'w+', loop=loop)
await aio_file.write(b"Hello ")
await aio_file.write(b"world", offset=7)
await aio_file.fsync()
print(await aio_file.read())
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
Write and read with helpers:
import asyncio
from aiofile import AIOFile, Reader, Writer
async def main(loop):
aio_file = await AIOFile("/tmp/hello.txt", 'w+', loop=loop)
writer = Writer(aio_file)
reader = Reader(aio_file, chunk_size=8)
await writer(b"Hello")
await writer(b" ")
await writer(b"World")
await aio_file.flush()
async for chunk in reader:
print(chunk)
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
or use async context manager:
import asyncio
from aiofile import AIOFile, Reader, Writer
async def main(loop):
async with AIOFile("/tmp/hello.txt", 'w+', loop=loop) as aio_file:
writer = Writer(aio_file)
reader = Reader(aio_file, chunk_size=8)
await writer(b"Hello")
await writer(b" ")
await writer(b"World")
await aio_file.flush()
async for chunk in reader:
print(chunk)
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiofile-1.2.1.tar.gz
(75.3 kB
view hashes)
Built Distributions
Close
Hashes for aiofile-1.2.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d82475dd0fbc795208b25248fdfc6437df0d9c64727240cb2ca12ca18b17c91a |
|
MD5 | 3c31c0382142e8938628470aa1c517ff |
|
BLAKE2b-256 | d4a6f37c12d085fda0bef4a6d4c60c224ea6232e0013ddfe83b7d8dacc9cfb35 |
Close
Hashes for aiofile-1.2.1-cp36-cp36m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5e1e3a6bfb79ec681898447cccad79d59b112294053c3e59579c932f08bf6e7 |
|
MD5 | a6f516e559abcf1d4cb4a62fb725b450 |
|
BLAKE2b-256 | f766d428278432c51e16152ee09ff5d900dbab03e6f54d07f786d5aa75c81831 |
Close
Hashes for aiofile-1.2.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d5fda6d816819c1e61e6100749d9690aed0e1895fd9eca9858fc2c2d8c21542 |
|
MD5 | f66ee98704b0be9d1fca4247a8773247 |
|
BLAKE2b-256 | 18e582353dc4022d859b280d3afa5417a6067915b9de57e64c5801dfda36c7d1 |
Close
Hashes for aiofile-1.2.1-cp35-cp35m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcc55b5603f6773d10562a3b0a47a60f80347fe5fe4a3b550cef2acb1670b05a |
|
MD5 | 7f918343414652b3a650f957d2e98987 |
|
BLAKE2b-256 | be0abdb3d36fa9e5b3daf881ddf3481a7d8b3791c53f8caa38c5cdfa525e825c |
Close
Hashes for aiofile-1.2.1-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79e2ffc431c8572b63d81d9a94ee52a109c0f92210b0baade691c468c190aea5 |
|
MD5 | 859b041bf12e6209007fde1ced28a5f2 |
|
BLAKE2b-256 | 410e942bfcbb8ec60441e49dbe350f6557d6ccb33b34809a18001cca28826ab1 |
Close
Hashes for aiofile-1.2.1-cp34-cp34m-macosx_10_6_intel.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 508550ead9ffff0d8a71d06a2bdee855d0066666c73480cf2cde33b1a7e9a83e |
|
MD5 | c886b11c8764879318fbb0aca0421403 |
|
BLAKE2b-256 | 08aff4778a44299ab0f6fa348ed3974fd3ae174107d9f277b8d645e52675f75c |