Obtenga el __archivo__ de la función un nivel arriba en la pila
He encontrado que estoy usando este patrón mucho:
os.path.join(os.path.dirname(__file__), file_path)
así que decidí poner una función en un archivo que tiene muchas de estas pequeñas utilidades:
def filepath_in_cwd(file_path):
return os.path.join(os.path.dirname(__file__), file_path)
La cosa es,__file__
devuelve elcorriente archivo y por lo tanto la carpeta actual, y me he perdido todo el punto. Podría hacer este truco feo (o simplemente seguir escribiendo el patrón como está):
def filepath_in_cwd(py_file_name, file_path):
return os.path.join(os.path.dirname(py_file_name), file_path)
y luego la llamada se verá así:
filepath_in_cwd(__file__, "my_file.txt")
pero preferiría que tuviera una manera de obtener el__file__
de la función que es un nivel arriba en la pila. ¿Hay alguna manera de hacer esto?