How do I list files in Asyncio?(如何在Asyncio中列出文件?)
本文介绍了如何在Asyncio中列出文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望能够在不阻塞的情况下获取文件列表,但我在documentation中看不到这样做的方法。在执行器中执行此操作的最佳方式是什么?
推荐答案
是的,我认为这是最好的方法。据我所知,没有针对列表文件的本机非阻塞调用,因此您别无选择,只能在线程/子进程中运行阻塞调用以获得非阻塞行为。这里有一个使用ProcessPoolExecutor的简单示例。
import concurrent.futures
import asyncio
import os
def list_files():
return os.listdir(".")
def on_got_files(fut):
print("got files {}".format(fut.result()))
loop.stop()
def main():
with concurrent.futures.ProcessPoolExecutor() as executor:
fut = loop.run_in_executor(executor, list_files)
fut.add_done_callback(on_got_files)
print("Listing files asynchronously")
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.call_soon(main)
loop.run_forever()
输出:
C:UsersDanDesktop>python3 async.py
Listing files asynchronously
got files [<files are listed here>]
这篇关于如何在Asyncio中列出文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:如何在Asyncio中列出文件?
基础教程推荐
猜你喜欢
- Kivy 使用 opencv.调整图像大小 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
