我正在尝试使用带有 urlretrieve() 的 xlsx 文件中的链接下载 .pdf,一列包含链接,另一列包含下载文件应具有的名称。
问题是我的代码似乎只是在下载列表的每个项目时一遍又一遍地覆盖同一个文件。
from urllib.request import urlretrieve
from urllib.error import URLError, HTTPError
import os
import xlrd
workbook = xlrd.open_workbook('file.xlsx',on_demand=True)
sheet = workbook.sheet_by_name('Sheet1')
listofvalues = sheet.col_values(21, 1)
listofnames = sheet.col_values(2, 1)
for name in listofnames:
for value in listofvalues:
try:
results = 'C:\\results'
full_file_name = os.path.join(results, str(name + ".pdf"))
urlretrieve(value, full_file_name)
print(str(value) + ' DOWNLOADED')
except (HTTPError, ValueError, URLError) as e:
print("------------------------------------")
print(e)
print(value)
print("-----------------------------------")
continue
我认为这与嵌套循环有关,但我找不到解决方案。