回答:
いつでも使用できます:
'C:/mydir'
これはLinuxとWindowsの両方で機能します。その他の可能性は
'C:\\mydir'
一部の名前に問題がある場合は、生の文字列リテラルを試すこともできます。
r'C:\mydir'
ただし、ベストプラクティスはos.path
、常にOSの正しい構成を選択するモジュール関数を使用することです。
os.path.join(mydir, myfile)
Python 3.4以降では、pathlibモジュールも使用できます。これは上記と同等です:
pathlib.Path(mydir, myfile)
または
pathlib.Path(mydir) / myfile
os.path
モジュールを使用します。
os.path.join( "C:", "meshes", "as" )
または生の文字列を使用する
r"C:\meshes\as"
パスやファイル名にスペースを入れないこともお勧めします。また、文字列に二重のバックスラッシュを使用できます。
"C:\\meshes\\as.jpg"
"C:\"
最初のエントリーとして置くのは正しいことですか?それは使用の清潔さのいくつかを台無しにしていjoin
ますか?
"C:\"
ファイル名の真ん中に入れたくないでしょう。さらに、os.path.normpath
結合の前または後に使用して、パスが適切に印刷されることを確認できます。
os.path.join( "C:\\", "meshes", "as" )
はい。Pythonでは\
、文字列リテラルはエスケープシーケンスの開始を示します。パスに有効な2文字のエスケープシーケンスがあり\a
、ASCIIベルである1文字に折りたたまれています。
>>> '\a'
'\x07'
>>> len('\a')
1
>>> 'C:\meshes\as'
'C:\\meshes\x07s'
>>> print('C:\meshes\as')
C:\meshess
その他の一般的なエスケープシーケンスには、\t
(タブ)、\n
(ラインフィード)、\r
(キャリッジリターン)があります。
>>> list('C:\test')
['C', ':', '\t', 'e', 's', 't']
>>> list('C:\nest')
['C', ':', '\n', 'e', 's', 't']
>>> list('C:\rest')
['C', ':', '\r', 'e', 's', 't']
ご覧のとおり、これらすべての例では、バックスラッシュとリテラルの次の文字がグループ化されて、最終的な文字列の単一の文字を形成しています。Pythonのエスケープシーケンスの完全なリストはこちらです。
これに対処するにはさまざまな方法があります。
Pythonは、r
orで始まる文字列リテラルのエスケープシーケンスを処理しませんR
。
>>> r'C:\meshes\as'
'C:\\meshes\\as'
>>> print(r'C:\meshes\as')
C:\meshes\as
Windows上のPythonもスラッシュを処理する必要があります。
あなたは使うことができますos.path.join
...
>>> import os
>>> os.path.join('C:', os.sep, 'meshes', 'as')
'C:\\meshes\\as'
...または新しいpathlib
モジュール
>>> from pathlib import Path
>>> Path('C:', '/', 'meshes', 'as')
WindowsPath('C:/meshes/as')
Windowsでは、使用できる/
すべての場所でちょうどLinuxやMacOSのようなあなたのパスにあなたはPowerShellを使用する限り、あなたのコマンドラインインターフェイスとして。それは来るプリインストールのWindows上で、それは多くのサポート、Linuxのコマンドのようなls
コマンドを使用します。
Windowsコマンドプロンプト(cmd
Windowsスタートメニューに入力したときに表示されるコマンドプロンプト)を使用する場合は、\
その中にパスを指定する必要があります。/
他のすべての場所(コードエディター、Pythonインタラクティブモードなど)でパスを使用できます。