2013-01-24 4 views
14

os.path.curdirは 'を返します。それはまったく真実であり、まったく役に立たない。役に立つものを得るには、os.path.abspath(os.path.curdir)なぜpythonはos.path.curdirを持っていますか

なぜos.pathモ​​ジュールに無駄な変数を含めるのですか?なぜos.path.curdirをあなたのためにos.path.abspathを実行する関数にしないのですか?

os.path.curdirの歴史的な理由はありますか?

多少役に立たないかもしれませんが、あまり役に立たないとは思わないかもしれません。 enter image description here

+3

'os.path.abspath(os.path.curdir)'ではなく 'os.getcwd()'が必要です。 –

答えて

26

os.path.sepのように定数です。

POSIXとWindows以外のプラットフォームでは、「現在のディレクトリ」を表すために異なる値を使用できます。 Risc OSの場合は@、古いMacintosh OSの場合は:です。

この値は、プラットフォームに依存しないままにするために標準ライブラリ全体で使用されます。

代わりにos.getcwd()を使用してください。 os.path.abspath()はフードの下でその機能を使用して、os.path.curdirを現在の作業ディレクトリに変換します。ここabspath()のPOSIXの実装です:

def abspath(path): 
    """Return an absolute path.""" 
    if not isabs(path): 
     if isinstance(path, _unicode): 
      cwd = os.getcwdu() 
     else: 
      cwd = os.getcwd() 
     path = join(cwd, path) 
    return normpath(path) 
+0

さて、私はいくつかのOSに「持っていない」ということを忘れていました。 curdirとして。ありがとう。 – boatcoder

5

それだけで一定の、プラットフォームに依存した値です。 から:

現在のディレクトリを参照するためにオペレーティングシステムによって使用される定数文字列。 WindowsおよびPOSIXの場合は'.'です。 os.pathでも利用できます。

代わりにos.getcwd()を使用することをおすすめします。

5

Linux、Windows、およびOS Xではos.path.curdirの値が"."ですが、古いMac OS 9システムでは":"です。 Pythonはこれまで十分に長い間使用されていましたが、以前は重要でした。

関連する問題