Obter o __arquivo__ da função um nível acima na pilha
Eu descobri que estou usando muito esse padrão:
os.path.join(os.path.dirname(__file__), file_path)
então eu decidi colocar em uma função em um arquivo que tem muitos utilitários pequenos:
def filepath_in_cwd(file_path):
return os.path.join(os.path.dirname(__file__), file_path)
A coisa é,__file__
retorna oatual arquivo e, portanto, a pasta atual, e eu perdi o ponto inteiro. Eu poderia fazer isso feio hack (ou apenas continuar escrevendo o padrão como é):
def filepath_in_cwd(py_file_name, file_path):
return os.path.join(os.path.dirname(py_file_name), file_path)
e então a chamada para ele ficará assim:
filepath_in_cwd(__file__, "my_file.txt")
mas eu preferiria se tivesse um jeito de conseguir__file__
da função que é um nível acima na pilha. Existe alguma maneira de fazer isso?