【发布时间】:2015-02-10 21:40:25
【问题描述】:
这个问题寻求建议以及一些代码的帮助。
我目前正在学习 Python 3.4 我已经构建了一个基本的网络检查工具,我从一个文本文件中导入项目,并且我希望 python 检查每个项目的 dns(使用 pydns),ping ip(使用子进程调用 OS 本机 ping)。
目前我正在检查 5000 到 900 万个 IP 地址,它需要几个小时,大约 4 来返回所有结果。
我想知道是否可以使用多处理或线程来加快速度,但仍将输出返回到列表,以便可以在脚本的最后将行批量写入 csv 文件。
我是 python 新手,所以如果我忽略了一些我应该忽略的东西,请告诉我。
【问题讨论】:
-
多处理可能是一个不错的选择,使用可连接队列来取回数据。但这可能并不比子进程好,具体取决于您运行它的方式。你在等待每个完成吗?
-
我已经用我正在使用的当前代码更新了主帖子,这需要很长时间。
标签: python python-3.x python-multithreading python-multiprocessing