Потому что я все еще возникают проблемы интерпретации именно то, что вы имеете в виду, здесь четыре разные ответы относительно того, как идти о печати.
Если вам просто нужно напечатать, и путь всегда будет постоянным, используйте:
print("Media/DVD/image.jpg")
Если вам нужно напечатать что-то и путь будет отличаться, попробуйте:
filepath = "Media/DVD/image.jpg"
al_p4 = Image.open(filepath).resize((100, 150), Image.ANTIALIAS)
al_p4 = ImageTk.PhotoImage(al_p4)
print(filepath)
Если вам нужно что-то напечатать для виджета, это будет зависеть от типа виджета, который вы хотите использовать. Для чего-то маленького, как путь к файлу, ярлык, вероятно, будет хорошим. Посмотрите на effbot's documentation for the label widget для более подробной информации.
Если вы хотите перенаправить все операторы печати на виджет, который может быть полезен в зависимости от того, как разработан ваш графический интерфейс, создайте класс для перенаправления stdout. Вот пример с текстовым виджетами:
import sys
import Tkinter
def nothing():
print("Nothing")
class Application(Tkinter.Frame):
def __init__(self, master = None):
Tkinter.Frame.__init__(self, master)
self.button = Tkinter.Button(text = "Button 1", command = nothing)
self.button.pack()
class StdoutRedirector(Tkinter.Text):
def __init__(self):
Tkinter.Text.__init__(self)
def write(self, message):
printout.insert(Tkinter.END, message)
printout = StdoutRedirector()
printout.pack()
sys.stdout = printout
root = Tkinter.Tk()
app = Application(root)
app.mainloop()
Возможно, вам захочется быть более понятным, что вы подразумеваете под «возвратом пути к файлу изображения». Вы имеете в виду вернуть его в другую функцию? Или распечатать путь к виджету, чтобы сделать его видимым для пользователя? Или что-то еще? В принципе, больше информации было бы полезно. – Gustav
Спасибо @Gustav Я отредактировал мой вопрос. –
Кажется, что 'filename' может быть извлечен из результата' Image.open', но теряется при изменении размера изображения или при его превращении в 'PhotoImage'. –