为了账号安全,请及时绑定邮箱和手机立即绑定

为循环文件下载器添加唯一的文件名

为循环文件下载器添加唯一的文件名

哔哔one 2021-10-26 15:28:18
我正在使用 for 循环从 API 请求文件。我想使用名称列表 (image_list) 命名每个文件。for i in download_url_list:response = requests.get(i, stream=True)with open('/Users/Zack/Downloads/' + ??? +  '.zip', "wb") as handle:    for data in tqdm(response.iter_content()):        handle.write(data)
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

您可以在 url 和文件名之间创建映射 (dict),然后遍历字典。


另一种方法是zip两个列表并迭代结果。


另一种方法是枚举 url 并根据索引获取文件名。


第一个选项假设在download_url_lists 最后两个假设中没有重复项download_url_lists并且image_list具有相同的大小。


info = zip(download_url_lists, image_list)

for url, filename in info:

    ...


# or

mapping = dict(info)

for url, filename in mapping.iteritems():

    ...


# or 

for index, url in enumerate(download_url_lists):

    filename = image_list[index]

    ...


查看完整回答
反对 回复 2021-10-26
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您可以使用在每次迭代中都会发生变化的变量;


看到这个:-


>>> list1 = [ 'a', 'b', 'c', 'd' ]

>>> 

>>> var, list2 = 0, []

>>> for i in list1:

...     filename = 'file{}'.format(var)

...     var += 1

...     list2.append(filename)

... 

>>> list2

['file0', 'file1', 'file2', 'file3']


查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 218 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号