2009-10-09 20 views
16

可能性の重複:
How to get/set logical directory path in pythonsymlinkを参照解除しないos.getcwd()のバージョンがありますか?

は私がシンボリックリンクのディレクトリから実行するPythonスクリプトを持っている、と私はシンボリックリンクのパスを取得するために期待し、その中にos.getcwd()を呼び出します私はそれを走らせた。代わりに、それは私に "本当の"道を与え、この場合、それは役に立たない。実際にシンボリックリンクされたバージョンを私に与える必要があります。

Pythonにはそのコマンドがありますか?

答えて

13

回避策:os.getenv('PWD')

+0

ああ、ありがとう。それは間違いなく動作します! –

+4

'PWD'環境変数は' os.chdir() 'によって更新されないので、シンボリックリンクがまったくない場合でも' os.getcwd() 'と矛盾する可能性があることに注意してください。 –

11

一般的にはこれが不可能です。 os.getcwd() GETCWDコール(3)、及びPOSIX.1-2008 (IEEE Std 1003.1-2008)に従って:

パス名は、ドットまたはドットのドットであるいかなる成分を含有しない、またはシンボリックリンクであるものとします。

os.getenv['PWD']はシェル依存であり、FreeBSDのshでは機能しません。

関連する問題