Quiero obtener la ruta del directorio actual en el que se ejecuta un archivo .py.
Por ejemplo, un archivo simple D:\test.py
con código:
import os
print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)
Es extraño que la salida sea:
D:\
test.py
D:\test.py
EMPTY
Espero los mismos resultados de getcwd()
y path.dirname()
.
Dado os.path.abspath = os.path.dirname + os.path.basename
, por qué
os.path.dirname(__file__)
vuelve vacío?
os.path.dirname(filename) + os.path.basename(filename) == filename
porque falta el separador de directorio. Preferimos:os.path.join(os.path.dirname(filename), os.path.basename(filename)) == filename
__file__
expande al nombre del archivo actual, por lo que puede usar una copia literal del código de esta respuesta.se puede usar también así:
fuente
fuente
os.path.realpath(__file__)
devuelve el abspath del script actual; os.path.split (abspath) [0] devuelve el directorio actualfuente
También puedes usar de esta manera
fuente