2009-10-09 15 views
16

Eventuali duplicati:
How to get/set logical directory path in pythonEsiste una versione di os.getcwd() che non denota i collegamenti simbolici?

Ho uno script Python che ho eseguito da una directory collegamento simbolico, e chiamo os.getcwd() in esso, in attesa di ottenere il percorso link simbolico L'ho gestito da. Invece mi dà il percorso "reale", e in questo caso non è utile. Mi serve per darmi effettivamente la versione con collegamenti simbolici.

Python ha un comando per questo?

risposta

13

Soluzione: os.getenv('PWD')

+0

Ah, grazie. Funziona sicuramente! –

+4

Si noti che la variabile di ambiente 'PWD' non viene aggiornata da' os.chdir() ', quindi può essere incoerente con' os.getcwd() 'anche quando non ci sono collegamenti simbolici. –

11

In generale questo non è possibile. os.getcwd() chiamate getcwd (3), e secondo POSIX.1-2008 (IEEE Std 1003.1-2008):

Il percorso deve contenere componenti che sono punto o punto-punto, o che sono collegamenti simbolici.

os.getenv['PWD'] è shell-dipendente e non funzionerà per esempio con sh da FreeBSD.

Problemi correlati