猿问

Windows上的Python os.path.join

我正在尝试学习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.join,os.path.normpath则会得到相同的错误。


如果os.path.join不能以这种方式使用它,那么我对其目的感到困惑。


根据Stack Overflow建议的页面,在连接中不应该使用斜杠-是的,我认为是正确的吗?


幕布斯6054654
浏览 351回答 3
3回答

喵喵时光机

Windows具有每个驱动器的当前目录的概念。因此,"c:sourcedir"意味着在当前C:目录中有“ sourcedir”,并且您需要指定一个绝对目录。这些中的任何一个都应该工作并给出相同的结果,但是目前我还没有启动Windows VM进行仔细检查:"c:/sourcedir"os.path.join("/", "c:", "sourcedir")os.path.join("c:/", "sourcedir")

ABOUTYOU

要更加学究,最符合python doc的答案是:mypath = os.path.join('c:', os.sep, 'sourcedir')由于您还需要os.sep作为posix根路径:mypath = os.path.join(os.sep, 'usr', 'lib')
随时随地看视频慕课网APP

相关分类

Python
我要回答