Python - 迭代器按字符而不是按行进行(当多进程时)

2024-04-26 13:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图遍历一个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)

所以,关于多重处理,我肯定做错了什么。但我就是搞不懂是什么。非常感谢您的帮助!你知道吗


Tags: importurl列表deflink情况mpurllib