我试图遍历一个URL列表,但我得到的输出是逐字符的,而不是逐行的。在没有多处理的情况下运行时,它完美无缺。但是,当我尝试多处理时,它开始逐个字符地阅读。这是为什么?
我已经广泛阅读了如何逐行阅读的内容,并且在我正确地做到这一点时,我看起来就是这样。我哪里错了?它完美无需多处理。
import urllib.request
import urllib.error
import multiprocessing
def findAdmin(URLList):
# Loops through links
for link in URLList:
print (link)
# Multi-processing worker
def mp_worker(URLList):
findAdmin(URLList)
# Multi-processing handler
def mp_handler(URLList):
p = multiprocessing.Pool(2)
p.map(mp_worker, URLList)
if __name__ == '__main__':
URLList = open('sites.txt','r')
mp_handler(URLList)
## When running just findAdmin(URLList), the program works flawlessly.
# findAdmin(URLList)
所以,我必须在多处理方面做错事。但我无法弄清楚它是什么。非常感谢任何帮助!
答案 0 :(得分:0)
.map()
在URLList中的每个条目上运行mp_worker
- for循环是不必要的。将findAdmin
更改为:
def findAdmin(URLList):
print (link)