1. ホーム
  2. python

[解決済み] WindowsでのPython os.path.join

2022-11-23 04:25:18

質問

Pythonを学ぼうとしていて、スクリプトを出力するプログラムを作っています。 私はos.path.joinを使いたいのですが、かなり混乱しています。 によると ドキュメントによると と言えば

os.path.join('c:', 'sourcedir')

私は "C:sourcedir" . ドキュメントによると、これは正常なのですよね?

でも、copytreeコマンドを使うと、Pythonは希望通りの方法で出力してくれるのですが、例えば。

import shutil
src = os.path.join('c:', 'src')
dst = os.path.join('c:', 'dst')
shutil.copytree(src, dst)

以下は、私が受け取ったエラーコードです。

WindowsError: [エラー 3] 指定されたパスをシステムが見つけることができません。'C:src/*.*' が見つかりません。

をラップすると os.path.joinos.path.normpath 同じエラーが出ます。

もし、この os.path.join がこのように使えないのであれば、私はその目的に困惑してしまいます。

Stack Overflowが提案したページによると、スラッシュはjoinで使用すべきではないとのことですが、これは正しいのでしょうか?

どのように解決するのですか?

Windowsには、ドライブごとにカレントディレクトリという概念があります。 そのため "c:sourcedir" はカレントC:ディレクトリ内の "sourcedir" を意味し、絶対ディレクトリを指定する必要があります。

これらのいずれかが動作し、同じ結果を与えるはずですが、ダブルチェックするために、現在 Windows VM を起動していません。

"c:/sourcedir"
os.path.join("/", "c:", "sourcedir")
os.path.join("c:/", "sourcedir")