【发布时间】:2019-12-13 14:49:27
【问题描述】:
我的程序会同时用aiohttp下载大约1000万条数据,然后将数据写入磁盘上大约4000个文件。
我使用aiofiles 库是因为我希望我的程序在读/写文件时也能做其他事情。
但我担心如果程序尝试同时写入所有 4000 个文件,硬盘无法快速完成所有写入。
是否可以使用 aiofiles(或其他库)限制并发写入的数量? aiofiles 是否已经这样做了?
谢谢。
测试代码:
import aiofiles
import asyncio
async def write_to_disk(fname):
async with aiofiles.open(fname, "w+") as f:
await f.write("asdf")
async def main():
tasks = [asyncio.create_task(write_to_disk("%d.txt" % i))
for i in range(10)]
await asyncio.gather(*tasks)
asyncio.run(main())
【问题讨论】:
标签: python python-asyncio aiohttp python-aiofiles