Read file line by line with asyncio

Using the aiofiles:

async with aiofiles.open('filename', mode="r") as f:
    async for line in f:
        print(line)

EDIT 1

As the @Jashandeep mentioned, you should care about blocking operations:

Another method is select and or epoll:

from select import select

files_to_read, files_to_write, exceptions = select([f1, f2], [f1, f2], [f1, f2], timeout=.1)

The timeout parameter is important here.

see: https://docs.python.org/3/library/select.html#select.select

EDIT 2

You can register a file for read/write with: loop.add_reader()

It uses internal EPOLL Handler inside the loop.

EDIT 3

But remember the Epoll will not work with regular files.

Leave a Comment

tech