Предотвращает ли запись и чтение файла aiofile в фоновом режиме блокировку выполняющегося потока? - PullRequest
1 голос
/ 17 июня 2020

Я недавно работал с python и не уверен в asyncio. Программа запрашивает URL-адрес, затем анализирует тег для каждой страницы и, наконец, записывает его в локальный файл. Программа использует библиотеку aiofile для записи тегов в файл. Я читал, что aiofile позволяет создавать асинхронный файл и использовать его методы, такие как сопрограммы. Означает ли это, что пока я записываю свои теги в локальный файл в фоновом режиме, я могу продолжать выполнять другие задачи (например, запрашивать другие URL-адреса и анализировать те, которые были получены), не дожидаясь, пока все теги будут записаны в локальный файл?

Вот часть кода:

async def fetch():
async def parse():

async def write_one(file: IO, url: str, **kwargs) -> None:
    """Write the found HREFs from `url` to `file`."""
    res = await parse(url=url, **kwargs)
    if not res:
        return None
    async with aiofiles.open(file, "a") as f:
        for p in res:
            await f.write(f"{url}\t{p}\n")
        logger.info("Wrote results for source URL: %s", url)
...