2009-09-27 19 views
5

Questo è il mio programma Python:Percorso del file corrente dipende da come eseguo il programma

#!/usr/bin/env python 

import os 

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

Se corro questo usando python myfile.py esso stampa una stringa vuota. Se lo eseguo utilizzando myfile.py, stampa il percorso corretto. Perchè è questo? Sto usando Windows Vista e Python 2.6.2.

risposta

8

E 'solo un inoffensivo tocco di Windows; è possibile compensare utilizzando os.path.abspath(__file__), vedere the docs

+0

Devo usare 'abspath' solo se sono su Windows o posso utilizzare a prescindere? –

+0

Probabilmente lo userò a prescindere. –

+0

non è solo Windows – SilentGhost

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

leggi cosa fa "os.path.abspath'. – SilentGhost

0

In molti casi è meglio usare:

os.path.dirname(sys.argv[0]) 
Problemi correlati