我有一个 Python 模块,它使用模块目录的子目录中的一些资源。在搜索堆栈溢出并找到相关答案后,我设法通过使用类似的方法将模块定向到资源
import os
os.path.join(os.path.dirname(__file__), 'fonts/myfont.ttf')
当我从其他地方调用模块时这工作正常,但是当我在更改当前工作目录后调用模块时它会中断。问题是 的内容__file__
是相对路径,没有考虑到我更改了目录的事实:
>>> mymodule.__file__
'mymodule/__init__.pyc'
>>> os.chdir('..')
>>> mymodule.__file__
'mymodule/__init__.pyc'
如何在 中编码绝对路径__file__
,或者除此之外,无论当前工作目录是什么,我如何访问模块中的资源?谢谢!