2012-08-01 44 views
7

我發現我使用這個模式很多:獲取的堆棧功能上一級的__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__。有沒有辦法做到這一點?

回答