os.path.dirname()和os.path.basemane()给出了奇怪的结果

时间:2017-08-10 10:37:26

标签: python macos python-3.x

我最近阅读了dirnamebasename。我的书使用下面的图像来解释它们之间的区别:

enter image description here

我目前正在使用OSX,因此我的根文件夹将是/。我在shell中编写了以下代码:

path='\\Users\\apple\\Documents\\list.txt'
os.path.dirname(path) 

我得到的结果是:''

然后我编写了以下代码来检查基名: os.path.basename(path)我得到的结果是:'\\Users\\apple\\Documents\\list.txt

这里发生了什么事?如何解决?

另外,我没有任何名称为 list 的文本文件。当我试图找到不存在的文件的dirnamebasename时,这不应该导致错误吗?

1 个答案:

答案 0 :(得分:2)

OSX与Linux一样,使用/作为分隔符。您可以从os.path.sep获取操作系统的标准分隔符。

>>> import os
>>> os.path.sep
'/'
>>> path='/Users/apple/Documents/list.txt'
>>> os.path.dirname(path)
'/Users/apple/Documents'
>>> os.path.basename(path)
'list.txt'

请注意os.path正在构建"正确"如果文件存在,它不会进行任何检查。如果你构建了一个创建新文件的路径,这没有多大意义。您可以使用os.path.exists()