Неправильно работает os.path.abspath

Avaruusolento

Новичок
Пользователь
Июл 13, 2020
2
0
1
Здравствуйте!
По какой причине os.path.abspath может работать не совсем верно? Он отбрасывает 2 последние папки. То есть, если изображение находится по адресу C:\Python\Viktorina\AA\Actress, формула показывает путь C:\Python\Viktorina\Rita_Hayworth.jpg , папки AA и Actress из пути почему-то исчезают. Соответственно программа не выводит на экран фото, а выдаёт ошибку.
 

Asgardov

Пользователь
Пользователь
Май 23, 2020
38
10
8
Проверили. При правильном использовании os.path.abspath работает правильно.
Следовательно ошибка у вас в коде при использовании данного функционала.
 
  • Мне нравится
Реакции: Student и Avaruusolento

Avaruusolento

Новичок
Пользователь
Июл 13, 2020
2
0
1
Вот часть кода, имеющая отношение к проблеме
Код:
def kuvan_valinta():
    papka = tiedoston_valinta()
    print (papka)
    if  papka == 0:
        path = "С:\Python\Viktorina\AA\Acters"
    else:
        path = "C:\Python\Viktorina\AA\Actress"
        
    kuva = random.choice(os.listdir(path));
    return kuva

def kuva():
    
    pic = kuvan_valinta()
    print (pic)
    canvas = Canvas(root,width=399,height=199)
    canvas.pack()
    tie = os.path.abspath(pic)
    print (tie)
    pilImage = Image.open(tie)
    image = ImageTk.PhotoImage(pilImage)
    imagesprite = canvas.create_image(30, 300, 430, 300, image=image)
    root.mainloop()

Функция print (tie) выводит путь С:\Python\Viktorina\"Название файла".jpg. Причём это путь к файлу py + название нужного файла.
 

Asgardov

Пользователь
Пользователь
Май 23, 2020
38
10
8
В переменной pic у вас строка.
В переменной tie у вас путь к директории проекта.
Если вы укажете любое другое значение всё равно вам вернёт С:\Python\Viktorina\ так как это корень этого проекта.
 

Форум IT Специалистов