URLのリストを反復しようとしていますが、出力は行単位ではなく文字単位です。マルチプロセッシングなしで実行すると、完璧に動作します。しかし、私がマルチプロセスしようとすると、それは文字ごとに読み始めます。どうしてこれなの?Python - Iteratorは行単位ではなく文字単位で処理されます(マルチプロセッシングの場合)
私は1行ずつ読む方法を広く読んできました。私はそれを正しく行っているように見えます。どこが間違っていますか?マルチプロセッシングなしでも完璧に動作します。
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)
私はマルチプロセッシングに関して何か間違っていなければなりません。しかし、私はそれが何であるか把握できません。どんな助けでも大歓迎です!
'p.map(mp_worker、URLList)' '全体ではなくURLList'で、労働者の引数として* URLList''の各*要素でプールにジョブを送信します
findAdmin
がに変更します。また、それはリストではありません。 – user2357112これはファイルであり、各要素で読み取ろうとしています。今、私は分かる。 ソリューションをどのようにコードすることができますか? – YoshiBMF