Сценарий переписывает один и тот же файл каждый раз, потому что вы используете одно и то же имя файла, оно никогда не меняется.
Проблема здесь:
with open('/Users/reezalaq/PycharmProjects/wholesale/img/pic1.jpg', 'wb')
Первый аргументopen()
метод - путь к файлу. Второй аргумент - это режим, который вы установили на wb
, или write / binary. Итак, в цикле вы каждый раз переписываете содержимое файла pic1.jpg
. (См .: https://docs.python.org/3.5/library/functions.html#open).
Вы можете предварительно определить список имен файлов в списке и использовать их в качестве имен файлов или сделать что-то более динамичное, например:
for img in img_list:
file_name = img.split('/')[-1]
with open(file_name, 'wb') as handle:
....
Это позволит получитьимя файла изображения с веб-сайта, с которого вы его загружаете (например, 1HTB1tT70vhuTBuNkHFNRq6A9qpXa3.jpg
для первого URL-адреса), которое будет использоваться в качестве имени файла в вашей системе. (Примечание: это также предполагает, что имена будут уникальными).
Редактировать :
Вы можете определить путь к своей папке до цикла for. Затем вы можете изменить метод open()
, чтобы включить этот путь. Итак:
import os # do this at the top of your file
folder_path = '/Users/reezalaq/PycharmProjects/wholesale/img/'
for img in img_list:
with open(os.path.join(folder_path, file_name), 'wb') as handle:
....