我有来自ipython的以下python os.path输出
import os.path as path
path.join("/", "tmp")
Out[4]: '/tmp'
path.join("/", "/tmp")
Out[5]: '/tmp'
path.join("abc/", "/tmp")
Out[6]: '/tmp'
path.join("abc", "/tmp")
Out[7]: '/tmp'
path.join("/abc", "/tmp")
Out[8]: '/tmp'
path.join("def", "tmp")
Out[10]: 'def/tmp'
Run Code Online (Sandbox Code Playgroud)
我发现输出5,6,7和8是违反直觉的.有人可以解释一下这个实施的具体原因吗?
Mar*_*ers 16
智能地加入一个或多个路径组件.如果任何组件是绝对路径,则所有以前的组件(在Windows上,包括之前的驱动器号,如果有的话)都将被丢弃,并继续加入.
一/开始就是/tmp一条绝对的道路.
如果要连接可能包含前导路径分隔符的多个路径元素,请先删除它们:
os.path.join(*(elem.lstrip(os.sep) for elem in elements))
Run Code Online (Sandbox Code Playgroud)
特殊外壳绝对路径使您可以指定相对路径(来自默认父目录)或绝对路径,而不必在构造最终值时检测是否具有绝对路径或相对路径.
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |