2010-07-19 11 views
22

si tengo un archivo test.py que reside en algún directorio, ¿cómo puedo averiguar en el directorio en que se encuentra test.py? os.path.curdir dará el directorio actual pero no el directorio donde vive el archivo. Si invoco test.py desde algún directorio "foo", os.curdir devolverá foo pero no la ruta de test.py.descubriendo la ruta absoluta a un archivo de python

gracias.

Respuesta

17

la respuesta es utilizar:

__file__ 

que devuelve una ruta relativa.

os.path.abspath(__file__) 

se puede utilizar para obtener la ruta completa.

0

os.path tiene muchas herramientas para hacer frente a las rutas y obtener información sobre las rutas.

Particularmente, usted quiere:

os.path.abspath 
28

Aquí es cómo conseguir el directorio del archivo actual:

import os 
os.path.abspath(os.path.dirname(__file__)) 
+0

Esta es la respuesta correcta y debe marcarse como tal. – catalyst294

1
import os 
dirname, filename = os.path.split(os.path.abspath(__file__)) 
5

Las respuestas hasta el momento se han apuntado correctamente a os.path.abspath, lo que hace exactamente el trabajo que solicitaste Sin embargo, no olvide que os.path.normpath y os.path.realpath también pueden ser muy útiles en este tipo de tareas (para normalizar la representación y eliminar enlaces simbólicos, respectivamente) en muchos casos (si su caso de uso específico cae entre estos "muchos" es imposible de la escasa información que tenemos, por supuesto ;-).

Cuestiones relacionadas