PythonでPATH環境変数セパレータを取得するにはどうすればよいですか?


156

実行可能な検索パスのように、複数のディレクトリを連結する必要がある場合は、OSに依存する区切り文字があります。Windowsの場合';'は、Linuxの場合は':'です。Pythonで分割する文字を取得する方法はありますか?

この質問のディスカッションで、Pythonを使用して自分のPythonパスを見つけるにはどうすればよいですか?、それos.sepを行うことをお勧めします。その答えは、それがディレクトリやファイル名のコンポーネントの区切りであることから、間違っているとに相当します'\\''/'

回答:


220

219
私のように、この質問の本文を読んでおらず、タイトルだけを付けている場合、これはファイルシステムパスの要素を区切る文字であると思うでしょう(LinuxとMacOSXではスラッシュ、Windowsではバックスラッシュ)。そうではなく、実行可能なコマンドを見つけるために使用されるシェルPATHの要素を区切る文字です。 os.sepまたはos.path.sep、ファイルシステムのパスに必要なものです。
ペリー

71
os.pathsepis :または;while os.path.sepis \\ または/-Pythonの名前が、あまりにもひどく選択されていないように感じることがあります。それ.はあまりにも大きな違いになります。
ArtOfWarfare 2015年

1
@ペリー私は質問を編集しました。うまくいけば、私の編集によって混乱が解消されます(この質問は「ファイルシステムパス」ではなく「PATH環境変数」について尋ねていることを示しました)。
Trevor Boyd Smith

だから、そこにあるos.sepos.path.sep、同じである、などos.pathsepos.path.pathsepも同じです。なぜ彼らはこれをするのでしょうか?
BallpointBen 2017年


12

もう少し明示的にする(私のようなpython初心者向け)

import os
print(os.pathsep)

4

はい、そうです:

  • os.pathsepつまり;PATH環境変数の区切り文字です。
  • os.path.sepこれは/、Unix / Linuxおよび\Windowsにあり、パスコンポーネント間の区切り文字です。

類似性は混乱の原因です。


あなたも質問を読みましたか?別の質問os.path.sepへの答えです。
Mark Ransom

あなたは正しいです、ありがとう!私の混乱は、このページが検索結果の1つとして提案されたのに対して、実際には「\」と「/」のシステム固有のセパレーター(os.path.sep)を探していたという事実から生じました。
DVV

1

これは作業ディレクトリ/特定のフォルダのサンプルパスです-

 import os
 my = os.path.sep+ "testImages" + os.path.sep + "imageHidden.png"
 print(my)

Linux用の出力

/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png

Windows用の出力

C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.