我很困惑,因为我会这样做。例如,如果我在我的计算机上引用pic0.gif,我当然要为
之类的东西做些什么def drawx():
myImWin = ImageWin('\Python34\images\pic0.gif',300,300)
Im = FileImage('\Python34\images\pic.gif')
Im.draw(myImWin)
但这只能在我的电脑上运行,因为我知道pic0.gif的目录。我需要做什么才能在具有不同目录的另一台计算机上自动寻找pic0.gif?
答案 0 :(得分:2)
通常,您的项目中有一个文件夹,其中包含图像资源:
[my_project]
[images]
pic0.gif
在您的代码中,您确定项目主目录:
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
然后你得到这样的图像文件:
myImWin = ImageWin(os.path.join(BASE_DIR, r'images/pic0.gif', 300, 300)
答案 1 :(得分:0)
如果您知道您要查找的图像与您的python脚本相关,例如,如果图像与脚本捆绑在一起,则可以检索脚本的绝对路径并从那里开始:
import os
# This is the full path of the directory containing this script
dirname = os.path.abspath(os.path.dirname(__file__))
# We know that the images are in a folder named 'img'
image_path = os.path.join(dirname, "img", "pic0.gif")
我们广泛使用模块os.path
和__file__
变量which is explained in this stackoverflow answer。
这样做的好处是它不会从你从中启动python脚本的地方工作。
答案 2 :(得分:-3)
你可以尝试使用os
模块。即显示当前文件夹的完整路径:
import os
os.path.curdir
>>> '.'
os.path.abspath(os.path.curdir)
>>> 'C:\\Users\\User\\Desktop'