【发布时间】:2020-08-09 08:50:10
【问题描述】:
我正在编写具有以下功能的 CSV 文件:
import csv
import os
import aiofiles
async def write_extract_file(output_filename: str, csv_list: list):
"""
Write the extracted content into the file
"""
try:
async with aiofiles.open(output_filename, "w+") as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=columns.keys())
writer.writeheader()
writer.writerows(csv_list)
except FileNotFoundError:
print("Output file not present", output_filename)
print("Current dir: ", os.getcwd())
raise FileNotFoundError
但是,由于 writerows 方法不允许等待,因此没有行被写入 CSV 文件。
如何解决这个问题?有什么解决方法吗?
谢谢。
完整代码可以在here找到。
【问题讨论】:
-
请注意,对本地文件使用异步 io 往往比同步 io 慢。您可能只是使用同步(即非异步)方法并包装在
loop.run_in_executor中,以便异步代码可以很好地与之交互
标签: python csv async-await python-asyncio fastapi