背景:一個(gè)進(jìn)程池處理下載圖片,但是下載圖片的這個(gè)函數(shù)被略過(guò)了代碼如下importosimportrequestsfrommultiprocessingimportPoolimgss=['//img30.360buyimg.com/n1/s1280x960_jfs/t22603/212/2599271310/150344/e03347b3/5b87d725Na3a0fca9.jpg','//img30.360buyimg.com/n1/s1280x960_jfs/t23803/270/2660558588/150459/2048f327/5b87d730Na2cb6120.jpg','//img30.360buyimg.com/n1/s1280x960_jfs/t1/20773/31/6300/133150/5c4d1819Ee0c22d12/54cf06a8191e749a.jpg','//img30.360buyimg.com/n1/s1280x960_jfs/t1/52295/33/1509/216396/5cf3d0c0Ef51c7006/df16ec85a1e0e301.jpg']defimgDown(img):'''downloadimageandsavetofolder'''url='http:'+imgimgName=img.split('/')[-1]r=requests.get(url,headers=headers)withopen(os.getcwd()+r'\{}\{}'.format(title,imgName),'ab+')asf:f.write(r.content)print('1picturedone!')defcheckDown(imgList):#checkD=input("是否需要下載產(chǎn)品圖片?需要回復(fù)'y'or'Y':")checkD='y'ifcheckD=='y'orcheckD=='Y':os.mkdir(title)p=Pool(4)foriinimgList:p.apply_async(imgDown,args=(i,))p.close()p.join()else:passif__name__=='__main__':title='producttest'headers={'accept-encoding':'deflate,br','user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/71.0.3578.98Safari/537.36'}checkDown(imgss)一直在找問(wèn)題,后面就直接結(jié)束了,有創(chuàng)建一個(gè)文件夾,但是里面圖片一個(gè)都沒(méi)有下到,我改了很多地方,后面發(fā)現(xiàn)把參數(shù)header以及參數(shù)title放到if__name__=="__main__":的上面就可以了,但是我不懂,這個(gè)不是用來(lái)自己運(yùn)行腳本和導(dǎo)入到其他腳本中的區(qū)別么,和上面這個(gè)是什么原因?上面是腳本的一部分,其中的title是需要另外一個(gè)函數(shù)返回的,所以沒(méi)辦法放在上面去,有其他辦法么?或者告訴我原因,謝謝!
在線(xiàn)等!if name == "main" 函數(shù)里的多進(jìn)程不執(zhí)行
慕田峪4524236
2019-08-05 22:48:18