一尘不染

Windows上的Python os.path.join

python

我正在尝试学习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建议的页面,在连接中不应该使用斜杠-是的,我认为是正确的吗?


阅读 215

收藏
2021-01-20

共1个答案

一尘不染

Windows具有每个驱动器的当前目录的概念。因此,"c:sourcedir"在当前C:目录中表示“ sourcedir”,并且您需要指定一个绝对目录。

这些中的任何一个都应该工作并给出相同的结果,但是目前我还没有启动Windows VM进行仔细检查:

"c:/sourcedir"
os.path.join("/", "c:", "sourcedir")
os.path.join("c:/", "sourcedir")
2021-01-20