在阅读os.path.join()方法的联机文档之后,以下情况似乎应该限定,但显然不适用。我是否正确阅读该文档?从Python的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
。
我明白了,谢谢。我认为以前的“组件”被抛出将是os.sep而不是整个路径。 – 2012-08-08 22:08:26