Ваш список цветов находится в classes
списке Python. У вас есть <color name>.txt
файлы, содержащие URL-адреса изображений тех цветов, которые перечислены в списке classes
. Итак, у вас есть начальная структура каталогов, которая выглядит следующим образом:
.
├── blue.txt
├── green.txt
├── orange.txt
├── purple.txt
├── red.txt
├── script.py
└── yellow.txt
Теперь вы хотите создать отдельные каталоги для каждого цвета. Итак, наконец, ваша структура каталогов должна выглядеть следующим образом:
.
├── data
│ └── colors
│ ├── blue
│ ├── blue.txt
│ ├── green
│ ├── green.txt
│ ├── orange
│ ├── orange.txt
│ ├── purple
│ ├── purple.txt
│ ├── red
│ ├── red.txt
│ ├── yellow
│ └── yellow.txt
└── script.py
Где ваш метод download_image()
загрузит изображение для заданных URL-адресов в файл <color name>.txt
, который он получает в качестве одного из аргументов. Он также получает место назначения каталога изображений, который нужно разместить, и максимальное количество изображений, которое он должен загрузить.
Если я правильно понял вашу проблему, следующий код решит вашу проблему. Код хорошо прокомментирован и не требует пояснений. Вы можете оставить комментарии, чтобы попросить больше разъяснений.
import os
base_path = "data/colors/"
# create base path directories if not already present
os.system("mkdir -p data")
os.system("mkdir -p data/colors")
classes = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']
# dummy download image function
def download_image(path, dest, max_pics):
print("URL file path: " + path)
print("Image destination: " + dest)
print("No of Images to be downloaded: " + str(max_pics))
if __name__ == "__main__":
for colour in classes:
# create directories for each colour if not already present
os.system("mkdir -p " + base_path + colour)
# move <colour_name>.txt file into base path
os.system("mv " + colour+".txt " + base_path)
dest = base_path + colour
# call download_image method
download_image(base_path+colour+".txt", dest, max_pics=200)