如何在Python 3中使用具有多个参数的多重处理?

瑞安

我有一个for循环,该循环将从一组URL中获取一个URL,然后延伸到该URL并执行其他操作,但是这是永远的事情,因此我认为我可以通过一些多处理来加快速度,但是却很费劲这样做。

感谢您的协助。

def accessAndSaveFiles(urlSet, user, verboseFlag):
    with multiprocessing.Pool(os.cpu_count()) as pool:
        pool.starmap(processURL, zip(itertools.repeat(urlSet), user, verboseFlag))

def processURL(url, user, verboseFlag):
    filePath = some_path

    img_data = requests.get(url, allow_redirects=True)
    open(filePath, 'wb').write(img_data.content)


def main():
    ...
    accessAndSaveFiles(urlSet, user, verboseFlag)
    ...

我在“ pool.starmap(processURL,zip(itertools.repeat(urlSet),user,verboseFlag))”行上收到一条错误消息,提示“ TypeError:zip参数#3必须支持迭代”。我不想遍历此项目,我只想每次发送相同的值。

安库尔

假设urlset是可迭代的,则应使用

pool.starmap(processURL, zip(urlSet, repeat(user), repeat(verboseFlag)))

这是因为您要遍历urlset,但每个processURL实例具有相同的用户和verboseFlag(因此,重复)

作为参考,您应该查看Python multiprocessing pool.map中的多个参数

迭代结束时zip的输出应类似于

[('www.google.com','user1',True),('www.goodle.uk','user1',True),]

为了pool.starmap使它有意义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在画布中使用具有CSS中描述的字体的文本元素

如何在Swift中使用具有相同协议变量的多个协议?

如何在Python中使用多重处理并行求和循环

如何在R中的data.table中使用具有累积值的移位计算

如何在Prettier中使用具有多个扩展名的文件?

如何在Objective-C中调用具有多个参数的Swift初始化方法

如何在python中映射具有多个参数的函数

如何在Python 3.6中使用具有不同值类型的Dict使用静态类型检查?

如何在Unity 2018.1中使用具有超过64k顶点的网格

如何在Python中使用具有字符异常的多行DOTALL

如何使用具有多个agruments的函数运行多处理python请求

如何在Typescript中使用具有参数value或value []的两个参数编写泛型函数

在多个Python版本中使用多重处理

如何在多重处理函数中传递参数以及如何使用多重处理列表?

如何在python中使用具有相同ID的新记录更新csv

如何在Python中不使用括号的情况下调用具有参数的函数

在Windows批处理文件中,如何使用具有多个带引号的字符串的命令执行FOR / F

如何在Codeigniter中使用具有相同名称的多个输入插入数据

如何在Groovy中使用反射调用具有空参数值的方法?

如何在Aurelia中使用具有多个属性的computeFrom

在python中使用具有多个值和相同参数的子进程

如何在for循环中使用多重处理-Python

如何在同一行中使用具有多个变量的 getline()?

如何在 Laravel 中使用具有不同页面和路由的多个域?

在 OOP Python tkinter 中的多个类中使用具有相同参数的一个函数的最佳方法是什么

如何在 Python 中循环使用具有多个子键的 JSON 文件?

如何使用具有多个条件的 CollectionView 在网格中使用搜索?

如何在 Flask 中使用具有 sudo 权限的 python 包?

如何使用具有多个参数的 MakeGenericMethod