Проблема
Основная проблема, которую я вижу в вашем коде, — это использование вами функции os.path.join()
. Посмотрите на следующие четыре строки вашего кода:
drive = "C:/Users/UserName/Desktop/FolderofWallpaperFolders"
folder = drive+ "/" + random.choice(afolder)
image = random.choice(aimage)
image_path = os.path.join(drive, folder, image)
При инициализации folder
вы объединяете drive
и случайное имя папки. Однако, когда вы инициализируете image_path
с помощью os.path.join()
, вы объединяете drive
, folder
и image
в один путь, указывающий на расположение изображения. Или, по крайней мере, это то, что он должен делать.
К сожалению, из-за того, как вы используете os.path.join()
, он возвращает недопустимый каталог и, следовательно, недопустимый файл. Это связано с тем, что folder
уже содержит строку, хранящуюся в drive
, но вы все равно объединяете эти две переменные с этим вызовом функции. Это пример того, как сейчас выглядит путь, хранящийся в image_path
:
"C:/Пользователи/ИмяПользователя/Рабочий стол/ПапкаWallpaperFolders/C:/Пользователи/ИмяПользователя/Рабочий стол/ПапкаWallpaperFolders/RandomlyChosenFolder/RandomlyChosenImage.jpg"
Решение
Простое решение — изменить инициализацию image_path
на следующее:
image_path = os.path.join(folder, image)
Однако вы также можете рассмотреть соглашения об именах переменных. Ваша переменная drive
хранит не просто строку, указывающую на ваш диск, она хранит путь к папке FolderofWallpaperFolders. Возможно, вам стоит просмотреть свой код и изменить имена некоторых переменных или изменить то, за что каждая переменная отвечает за хранение. Затем тщательно выясните, как использовать функцию os.path.join()
для ваших конкретных переменных.
person
Xetnus
schedule
29.06.2017