2016-05-09 18 views
2

私は、Windowsの下ですが、私のような、いくつかのUNIX形式のパスを処理する必要があります。私が望む正しい出力ではありませんos.pathのプラットフォームを指定する方法はありますか?

In[4]: os.path.abspath('/prj/vl') 
Out[4]: 'C:\\prj\\vl' 

。だから、私はos.pathをUnixのように動作させる方法があるかどうか疑問に思っていますか?私。私は同様のものがあるかどうかを確認したい:os.path.setos('Linux')

+0

この回答は1である '' – heinst

答えて

4

os.pathはお使いのOSによって異なるモジュールです。

import posixpath 

他のバージョンが古いスタイルのMacOSのパスのWindowsのパスのntpathmacpathであり、OS/2 EMXためos2emxpathos.pathドキュメントのdocumentedとして、あなたは明示的にUnixスタイルのパスのバージョンをインポートすることができますパス。

1

あなたはposixpathの代わりos.path使用することができます - 実際には、os.pathは、システムに応じて、posixpathntpathのいずれかを使用しています。

2

異なるオペレーティングシステムにはパス名の表記規則が異なるため、Python標準ライブラリにはこのモジュールのいくつかのバージョンがあります。 os.pathモジュールは、常にPythonが動作しているオペレーティングシステムに適したパスモジュールであるため、ローカルパスに使用できます。ただし、常に異なるフォーマットのいずれかにあるパスを操作する場合は、個々のモジュールをインポートして使用することもできます。

`posixpath` for UNIX-style paths 
`ntpath` for Windows paths 
`macpath` for old-style MacOS paths 
`os2emxpath` for OS/2 EMX paths 

参照://ドキュメント:HTTPSからコピー1:https://docs.python.org/2/library/os.path.html

+2

os.path.abspath( 'PRJ/VL')試してみてくださいそれらはすべて同じインタフェースを持っています。 python.org/2/library/os.path.html、私はそれが引用されるべきだと思う – CherryDT

+0

確かなこと。完了 –

関連する問題