我一直试图弄清楚如何始终如一地获取我的某个模块的目录的绝对路径,以便我可以打开同一目录中的文件,无论模块是直接运行还是从某处导入其他
我只是误解了os.path和_ file _的工作方式,还是Django中有一些引起这种情况的怪癖?
views.py:
def pathtest(request):
return HttpResponse(mymodule.getpath())
mymodule.py:
def getpath():
return os.path.realpath(__file__)
预期输出:
/home/user/projects/myproject/mymodule/mymodule.py
实际输出:
/home/user/projects/myproject/views.py
答案 0 :(得分:1)
这不是关于Django的,os模块是内置的python。
您不必在mymodule模块中实现getpath函数,只需导入模块并从中获取__file__属性即可解决此问题。
import mymodule
import os
print os.path.abspath(mymodule.__file__)
应该可以正常工作
答案 1 :(得分:1)
你能这样做吗?
<强> mymodule.py 强>:
def getpath():
os.path.abspath(os.path.dirname(__file__))