Как сделать данный код асинхронным?

начинаю изучать python асинхронность и нужно перенести данный код в асинхронный вид, так как в потоках и процессах основной поток блокируется. пробовал создавать задачи и асинхронно их выполнять, но не помогло. помогите пожалуйста!!!

with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
    with open(checker_file, 'r', encoding="utf-8") as base_file:
                futures = {executor.submit(checking, line) for line in base_file}
                concurrent.futures.wait(futures)

Ответы (1 шт):

Автор решения: Isaac Azimov

Если хочешь на asyncio, то можно использовать библиотеку aiofiles.

Тебе нужно сначала функцию checking тоже сделать асинхронной:

async def checking(line: str):
    ...

Не забыть импортировать:

import asyncio
import aiofiles

И основной код:

async def main():
    async with aiofiles.open(checker_file) as f:
        async for line in f:
            await checking(line)


if __name__ == "__main__":
    asyncio.run(main())

И еще рекомендую почитать статью про генераторы и asyncio чтобы понять как работает асинхронный код.

→ Ссылка