如何返回目录的最后一部分,同时仍然访问完整的目录?动力学温度

2024-07-07 07:05:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我当前的目标是在下拉菜单中以文本形式显示目录的最后一部分,并且仍然通过完整目录打开图像

我当前的下拉菜单只显示目录的完整长度,工作非常好。但我知道如何使用os.path.basename显示目录的最后一部分。不幸的是,它只显示目录的最后一个字符串,但当我单击“打开”时,它会尝试打开目录的最后一部分,而不是完整目录

代码如下:

self.tkvar = StringVar()

# Directory
self.directory = "C:/Users/Eduards/Pictures"
self.choices = glob.glob(os.path.join(self.directory, "*.jpg"))

# Images
def change_dropdown():
    imgpath = self.tkvar.get()
    img = Image.open(imgpath)
    img = img.resize((529,361))
    photo = ImageTk.PhotoImage(img)
    label2.image = photo
    label2.configure(image=photo)
    self.CaptureScreen['state'] = 'normal'



#widgets
self.msg1 = Label(main, text = "Choose here")
self.msg1.grid(column = 0, row = 0)
self.popupMenu = OptionMenu(main, self.tkvar, *self.choices)
self.popupMenu.grid(row=1, column=0)
self.display_label = label2 = Label(main, image=None)
self.display_label.grid(row=2, column=0, rowspan = 500)
self.open_button = Button(main, text="Open", command=change_dropdown)
self.open_button.grid(row=502, column=0)

这里是输出:

enter image description here

我怎样才能得到只显示目录最后一部分的目录。作为一个例子,从上面的图像中突出显示蓝色只显示Minions.jpg或只是Minions。但在后面它实际上打开了C:/Users/Eduards/Pictures\Minions.jpg


Tags: imageself目录imgmaincolumnopengrid
1条回答
网友
1楼 · 发布于 2024-07-07 07:05:36

非常简单,您必须更改执行打开操作的代码。当前代码只是get用户单击并打开该字符串(文件名)的标签。您需要更改代码,以便显示的标签是您想要的,但是代码的open部分将self.directory挂起到该文件名

您省略了很多支持代码,但我认为您需要的是

img = Image.open('\\'.join(self.directory, imgpath))

相关问题 更多 >