Py学习  »  Python

Python os的用例是什么。路径当一个参数是绝对路径时,是否在之前删除所有参数?[重复]

henning • 3 年前 • 1356 次点击  

我正在学习Python,我注意到我的一个脚本有些奇怪。做了一点测试,我发现问题源于这种行为:

>>> import os
>>> os.path.join('a','b')
'a/b'
>>> os.path.join('a','/b')
'/b'

检查 documentation ,这实际上是功能的设计:

操作系统。路径 参加 ( 路径1 [ , 路径2 [ , ... ]] )

智能地连接一个或多个路径组件。如果任何组件是绝对路径,则所有以前的组件(在Windows上,包括以前的驱动器号,如果有)都将被丢弃,并继续加入。。。

我的问题不是 why my script failed 而是为什么功能是这样设计的。我是说,至少在Unix上, a//b 这是一种完全可以接受的指定路径的方式,如果不是优雅的话。为什么功能是这样设计的?有没有办法判断一个或多个path元素在测试每个path字符串之前是否已被丢弃 os.path.isabs() ?


出于好奇,我还检查了路径组件以 os.sep 人物:

>>> os.path.join('a/','b')
'a/b'

正如预期的那样。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/128276
 
1356 次点击  
文章 [ 2 ]  |  最新文章 3 年前