为了账号安全,请及时绑定邮箱和手机立即绑定

Windows上的Python os.path.join

Windows上的Python os.path.join

qq_花开花谢_0 2019-10-28 16:52:33
我正在尝试学习python,正在制作一个将输出脚本的程序。我想使用os.path.join,但是很困惑。根据文档,如果我说:os.path.join('c:', 'sourcedir')我懂了"C:sourcedir"。根据文档,这是正常的,对吗?但是当我使用copytree命令时,Python将以所需的方式输出它,例如:import shutilsrc = 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建议的页面,在连接中不应该使用斜杠-是的,我认为是正确的吗?
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

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


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


"c:/sourcedir"

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

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


查看完整回答
反对 回复 2019-10-28
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

要更加学究,最符合python doc的答案是:


mypath = os.path.join('c:', os.sep, 'sourcedir')

由于您还需要os.sep作为posix根路径:


mypath = os.path.join(os.sep, 'usr', 'lib')


查看完整回答
反对 回复 2019-10-28
  • 3 回答
  • 0 关注
  • 1304 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信