虽然根据查找python模块的源文件有一些相关的线程,但我没有找到关于如何以最简单可靠的方式从python类中获取文件名的答案。对于位于的假设文件/usr/local/TestLib.py
:
class MyTest(object):
def __init__(self):
myLocation = XXX
我希望变量myLocation
包含字符串/usr/local/TestLib.py
。__file__
在我的课堂上似乎不起作用。
我该怎么做?
__file__
应该在这样的课堂上工作。也许您认为它不起作用,因为它不一定会返回完整路径。__file__
就它如何处理路径而言,它有点时髦,所以如果你想要完整的路径,你可能必须像这个例子一样在路径的第一部分添加。(有关这方面的详细信息,请查看此问题:Python __file__ attribute absolute or relative?。)
import os
class Foo:
def __init__(self):
self.myLoc = os.path.abspath(__file__)
f = Foo()
print f.myLoc