Загрузка списка изображений через python с использованием цикла с пользовательским вводом - PullRequest
1 голос
/ 13 марта 2019

Загрузка списка изображений через python с использованием цикла. Привет, ребята, Я пытаюсь создать код Python, который будет делать следующее: Скачать изображения URL-адресов и их имена из пользовательского ввода Я не мог понять, как перебрать список имен. Вот пример ввода URL пользователя:

https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png, https://www.fudzilla.com/media/k2/items/cache/3c6d36be2f570f2ea2f5d74c17c26ae0_XL.jpg

Пример ввода имени пользователя: Google, Apple

окончательный результат: загрузка 2 изображений в папку «images» с именами файлов «apple» и «google»

Вот код, который я мог бы придумать:

    import urllib.request

    images = input('please enter url list separated by ",""')
    names = input('please enter images names separated by ",""')

    images = images.split(',')
    names =  names.split(',')

    for image in images:
     for name in names:
              urllib.request.urlretrieve(image[0], "images/{}.jpg".format(name[0])) 
print('images downloaded successfully')

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 марта 2019

Мне кажется, что цикл неправильный.Вложив два цикла, вы получите всего 4 итерации, по 2 на каждый цикл.Таким образом, вы сделаете 4 запроса.Вы собираетесь скачать каждое изображение два раза и сохранить его под обоими именами.На вашем месте я бы использовал словарь с парами ключ: значение, но это совершенно другой код.Следующий код будет зацикливаться только на изображениях, и каждый раз имя будет увеличивающимся индексом из массива 'names'.

Попробуйте это:

import urllib.request

images = input('please enter url list separated by ",""')
names = input('please enter images names separated by ",""')

images = images.split(',')
names =  names.split(',')

for index, image in enumerate(images):
    urllib.request.urlretrieve(image, "images/{}.jpg".format(name[index])) 
print('images downloaded successfully')
0 голосов
/ 13 марта 2019

Вы используете вложенные циклы, но я думаю, что на самом деле вам нужен только один цикл, который проходит по URL и именам одновременно.

Попробуйте это:

images = input('please enter url list separated by ",""').split(',')
names = input('please enter images names separated by ",""').split(',')

for i in range(len(images)):
    urllib.request.urlretrieve(images[i], "images/{}.jpg".format(names[i]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...