2016-11-28 10 views
0

は、私は、モジュールの基本的な理解を持つ、Pythonでパス名の操作を学んでいた最近の次の文は、のpythonサブモジュールとパス名操作が

osos.pathがこれを可能に

がどのように両方のモジュール:(ある私を混同しました

それから私はos.pyソースコードを見て、私の質問は

012ある

57. import posixpath as path 

次のコード啓発の行を見つけました

posixpath.join('bin','utils')の代わりにos.path.join('bin','utils')を使用する理由は何ですか?

xx.yを両方のモジュールとしてエクスチェンジする簡単な方法は何ですか?この手法を適用するタイミングは何ですか?

+2

関連:http://stackoverflow.com/questions/2724348/should-i-use-import-os-path-or-importo-os- "os.pathの名前はこの モジュールのエイリアスです 'os.path'は、 プラットフォームに特有の方法で同じ操作を提供し、別のモジュール(例えばmacpath、ntpath)へのエイリアスです" –

+1

その 'import posixpath as path'のコンテキストを見ると、スクリプトがPosixシステム上で動いている場合にのみ起こることがわかります。 'posixpath'は通常のユーザコードで直接使用するためのものではありません。そうしないと、Posix以外のシステムではスクリプトは動作しません。 –

+0

私は@Chris_Randsと@PM 2Ringのおかげで、それを指摘してくれました。誰かが自分が行っていることを正確に知っているならば、 'posixpath'を使うことができますが、' os.path'が最善の選択です –

答えて

0

利用os.path.join('bin','utils')代わりのposixpath.join('bin','utils')

私はos.pathを使用して直接posixpathを使用していることがより堅牢であることを発見。

os.pathは、異なるオペレーティングシステムとの互換性を提供します。あなたがos.pathを使用して見ることができるようにos.py

if 'posix' == os.name : 
    from posix import * 
    import posixpath as path 
elif 'nt' == os.name : 
    from nt import * 
    import ntpath as path 
.... 

から簡体字コードを使用すると、現在のOSの仕様のためのパスを操作していることを確認します。

関連する問題