获取的堆栈功能上一级的__file__

问题描述:

我发现我使用这个模式很多:获取的堆栈功能上一级的__file__

os.path.join(os.path.dirname(__file__), file_path) 

所以我决定把在函数中的文件有很多这样的小工具:

def filepath_in_cwd(file_path): 
    return os.path.join(os.path.dirname(__file__), file_path) 

的事情是,__file__返回当前文件,因此当前文件夹中,我已经错过了这点。我能做到这一点丑陋的黑客(或者只是保持写图案是):

def filepath_in_cwd(py_file_name, file_path): 
    return os.path.join(os.path.dirname(py_file_name), file_path) 

,然后调用它看起来就像这样:

filepath_in_cwd(__file__, "my_file.txt") 

,但如果我我宁愿它有一种方法可以获得堆栈中上一层功能的__file__。有没有办法做到这一点?

这应做到:

inspect.getfile(sys._getframe(1)) 

sys._getframe(1)获得了调用框架,inspect.getfile(...)中获取文件名。

+0

它的工作原理!谢谢... – phistakis 2012-08-01 11:51:03