5

私は2つの文字列を持っています:

C:\Data

および別のフォルダ

Foo1

必要なのは、Windowsの出力が

C:\Data\Foo1

Linuxの出力は

/data/foo1

/dataがLinuxにあると仮定します。Pythonで使用できる定数セパレーターはありますか?これにより、基盤となるOSに関係なく簡単に使用できますか?

4

3 に答える 3

16

はい、Pythonos.sepはその文字であるを提供しますが、あなたの目的のために、関数os.path.join()はあなたが探しているものです。

>>> os.path.join("data", "foo1")
"data/foo1"
于 2012-11-12T02:12:55.907 に答える
4

os.path.normpath()は、LinuxおよびWindowsのパスを正しく正規化します。参考までに、Windows OSの呼び出しではどちらのスラッシュも使用できますが、正規化してユーザーに表示する必要があります。

于 2012-11-12T02:20:18.067 に答える
1

os.path.join()常に優れています。Mark Tolonenが書いたように(彼への私の+1)、Windowsでも通常のスラッシュを使用できます。パスを明示的に記述する必要がある場合は、この方法をお勧めします。Pythonのパスにバックスラッシュを使用することは絶対に避けてください。または、文字列でそれらを2倍にするかr'raw strings'、バックスラッシュの解釈を抑制するために使用する必要があります。それ以外の場合は、'c:\for\a_path\like\this'実際には\f、、、、\aおよび\tエスケープシーケンスが含まれていますが、これらは執筆時点では気付かない可能性があります...将来的には頭痛の種になる可能性があります。

于 2012-11-12T09:17:32.037 に答える