2009-09-27 9 views
5

Este es mi programa en Python:Ruta al archivo actual depende de cómo ejecutar el programa

#!/usr/bin/env python 

import os 

BASE_PATH = os.path.dirname(__file__) 
print BASE_PATH 

Si funciono esto utilizando python myfile.py imprime una cadena vacía. Si lo ejecuto usando myfile.py, imprime la ruta correcta. ¿Por qué es esto? Estoy usando Windows Vista y Python 2.6.2.

Respuesta

8

Es una peculiaridad inofensiva en las ventanas; se puede compensar mediante el uso de os.path.abspath(__file__), ver the docs

+0

¿Uso 'abspath' sólo si estoy en Windows o lo uso sin tener en cuenta? –

+0

Probablemente lo use independientemente. –

+0

no es solo Windows – SilentGhost

0
os.path.normpath(os.path.join(os.getcwd(),os.path.dirname(__file__))) 
+1

lea lo que 'os.path.abspath' hace. – SilentGhost

0

En muchos casos es mejor utilizar:

os.path.dirname(sys.argv[0]) 
Cuestiones relacionadas