以下のコードは結合されません。デバッグすると、コマンドはパス全体ではなく最後のエントリのみを保存します。
os.path.join('/home/build/test/sandboxes/', todaystr, '/new_sandbox/')
これをテストすると、/new_sandbox/
コードの一部のみが保存されます。
ベストアンサー1
後者の文字列はスラッシュで始まってはいけません。スラッシュで始まっている場合、それは「絶対パス」とみなされ、それより前のものはすべて破棄されます。
コンポーネントが絶対パスの場合、それ以前のすべてのコンポーネントは破棄され、絶対パス コンポーネントから結合が続行されます。
Windows では、ドライブ文字に関する動作が以前の Python バージョンと比べて変更されているようです。
Windows では、絶対パス コンポーネント (例:
r'\foo'
) が検出されてもドライブ文字はリセットされません。コンポーネントにドライブ文字が含まれている場合、それ以前のすべてのコンポーネントは破棄され、ドライブ文字がリセットされます。各ドライブには現在のディレクトリがあるため、は、ドライブ( )os.path.join("c:", "foo")
上の現在のディレクトリに対する相対パスを表し、 ではないことに注意してください。C:
c:foo
c:\foo