aiofiles.os.scandir() is asynchronous while the returned iterator is not. Iterating the iterator may block asyncio event loop.
import time
import asyncio
import aiofiles
large_folder_in_slow_disk = "H:\photos"
use_list = True
async def main():
entries_iter = await aiofiles.os.scandir()
if use_list:
print(f"start_time: {time.monotonic():>10.5f}")
entries = list(entries_iter) # It's a Iterator, not AsyncIterator, may block while iterating
print(f"end_time: {time.monotonic():>10.5f}")
# during the time asyncio event loop may helt
else:
print(f"start_time: {time.monotonic():>10.5f}")
for entry in entries_iter: # Not async
print(f"iter: {time.monotonic():>10.5f}")
# can notice that iterating consume time
aiofiles.os.scandir()is asynchronous while the returned iterator is not. Iterating the iterator may block asyncio event loop.