从与程序位于同一文件夹中的文件夹加载图像

时间:2018-09-05 01:40:45

标签: python python-3.x tkinter

我的文件在我的程序上运行。但是,我不确定如何从特定文件夹中的文件加载图像。到目前为止,我的以下代码只能直接在与程序文件本身相同的文件夹中获取图像。

from tkinter import *

root = Tk()

canvas = Canvas(root, width=500, height=500)
canvas.pack()

imagetest = PhotoImage(file="giftest.gif")
canvas.create_image(250, 250, image=imagetest)

root.mainloop()

我在this YouTube video上找到了一些有关如何将文件链接到特定文件夹的信息,但是它只能告诉整个目的地。如果将包含程序的文件夹移到其他目标位置,则我不能保证该视频显示的整个文件夹目标位置项始终可以正常工作。移动该文件夹将破坏程序中的图像链接。

是否有某种方法可以从与程序位于同一文件夹中的文件夹加载图像?我记得HTML也可以做这种事情,但是我不知道Python是否也可以做。

2 个答案:

答案 0 :(得分:2)

如果绝对路径不是固定的,则始终可以在代码中构建文件路径。

这将结合当前目录的绝对路径和文件的相对路径。只要图像的相对位置始终与python脚本相同,这将始终有效

import os
directory_path = os.path.dirname(__file__)
file_path = os.path.join(directory_path, 'relative_path/file')

请注意, directory_path 是python脚本的目录路径。

答案 1 :(得分:1)

您可以在python文件中指定包含"folder/giftest.gif"之类图像的文件夹。这是一个示例:

from tkinter import *

root = Tk()

canvas = Canvas(root, width=500, height=500)
canvas.pack()

imagetest = PhotoImage(file="folder/subfolder/giftest.gif")  #python file is not in "folder" but "folder" is in your python file directory
canvas.create_image(250, 250, image=imagetest)

root.mainloop()