我如何在ThreadPool(6)中传递两个参数。imap_unordered(func,arg1)

时间:2019-12-23 12:46:06

标签: python python-2.7 threadpool

在下面的代码中,如何给文件名作为从excel(数据类型为list)中获取的值,而不是进行url.split("/")[-1]

def download_files(url):
    file = url.split("/")[-1]

    file_name = ("{}.pdf".format(file))
    try :
        fullfilename = os.path.join('/home/jmi3840/downloads/downloads', file_name)
        response = urlretrieve(url,fullfilename)

    except: print ('Opps!')


if __name__ == "__main__":
    path = '/home/jmi3840/downloads/PIRTestFile.xlsx'
    URLS = []
    FILES = []
    wb = xlrd.open_workbook(path)
    sheet = wb.sheet_by_index(0)
    print ('Fetching urls ...')
    for i in tqdm(range(sheet.nrows)):
        URLS.append(sheet.cell_value(i, 0))
    print ('Fetching filenames ...')    
    for j in tqdm(range(sheet.nrows)):
        FILES.append(sheet.cell_value(j, 1))
    print ('Downloading ...')
    results  = ThreadPool(6).imap_unordered(download_files,URLS)


    for r in results:
            print('')
    print("--- %s seconds ---" % (time.time() - start_time))

0 个答案:

没有答案