在阅读了 os.path.join() 方法的在线文档后,以下案例似乎应该符合条件,但显然它没有。我是否正确阅读了该文档?
>>> import os
>>>
>>> os.path.join("/home/user", "/projects/pyproject", "mycode.py")
>>> '/projects/pyproject/mycode.py'
在第一条和第二条路径上尝试了尾随和前导 os.sep 的不同组合后,似乎要加入的第二条路径的第一个字符不能以 os.sep 开头。
>>> os.path.join("/home/user", "projects/pyproject", "mycode.py")
>>> '/home/user/projects/pyproject/mycode.py'
在 path1 和 path2 是来自用户输入的部分的情况下,例如,用户输入意味着编写代码来解析他们的输入以获取领先的 os.sep。
来自 python.org 在线参考:
os.path.join(path1[, path2[, ...]])
智能地加入一个或多个路径组件。如果任何组件是绝对路径,则所有先前的组件(在 Windows 上,包括先前的驱动器号,如果有的话)都将被丢弃,并继续加入。返回值是path1
, 和可选path2
等的串联,os.sep
除了最后一个之外的每个非空部分之后只有一个目录分隔符 ( )。(这意味着空的最后一部分将导致路径以分隔符结尾。)请注意,在 Windows 上,由于每个驱动器都有一个当前目录,因此os.path.join("c:", "foo")
表示相对于驱动器C:
(c:foo
) 上当前目录的路径,而不是c:\foo
.