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

我正在使用 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)

http://img3.mukewang.com/6177ae2b0001bfae16250629.jpg

哔哔one
浏览 219回答 2
2回答

ibeautiful

您可以在 url 和文件名之间创建映射 (dict),然后遍历字典。另一种方法是zip两个列表并迭代结果。另一种方法是枚举 url 并根据索引获取文件名。第一个选项假设在download_url_lists 最后两个假设中没有重复项download_url_lists并且image_list具有相同的大小。info = zip(download_url_lists, image_list)for url, filename in info:    ...# ormapping = dict(info)for url, filename in mapping.iteritems():    ...# or for index, url in enumerate(download_url_lists):    filename = image_list[index]    ...

哈士奇WWW

您可以使用在每次迭代中都会发生变化的变量;看到这个:->>> 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']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python