我最近阅读了dirname
和basename
。我的书使用下面的图像来解释它们之间的区别:
我目前正在使用OSX,因此我的根文件夹将是/。我在shell中编写了以下代码:
path='\\Users\\apple\\Documents\\list.txt'
os.path.dirname(path)
我得到的结果是:''
然后我编写了以下代码来检查基名:
os.path.basename(path)
我得到的结果是:'\\Users\\apple\\Documents\\list.txt
!
这里发生了什么事?如何解决?
另外,我没有任何名称为 list 的文本文件。当我试图找到不存在的文件的dirname
和basename
时,这不应该导致错误吗?
答案 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()
。