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

Python os.path.dirname()和os.path.basemane()给出了奇怪的结果,python,macos,python-3.x,Python,Macos,Python 3.x,我最近读到了dirname和basename。我的书使用下图来解释它们之间的区别: 我目前正在使用OSX,因此我的根文件夹将为/。我在shell中编写了以下代码: path='\\Users\\apple\\Documents\\list.txt' os.path.dirname(path) 我得到的结果是:' 然后,我编写了以下代码来检查basename: os.path.basename(path)而我这次得到的结果是:'\\Users\\apple\\Documents\\list.

我最近读到了
dirname
basename
。我的书使用下图来解释它们之间的区别:

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

path='\\Users\\apple\\Documents\\list.txt'
os.path.dirname(path) 
我得到的结果是:
'

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

这里发生了什么事?如何修复它


另外,我没有任何名为list的文本文件。当我试图查找一个不存在的文件的
dirname
basename
时,这难道不应该导致错误吗

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'

请注意,在构建“正确”路径时,如果文件存在,它不会进行任何检查。如果您构建了一个创建新文件的路径,那么这就没有多大意义了。您可以使用它。

尝试更改路径,如:
path=r'\Users\apple\Documents\list.txt'
或使用
/
斜杠而不是\。粘贴您运行的代码行的精确副本,从[1]开始到结束,使用ipythonOSX中的
Out[1]
像windows一样使用反斜杠。你的意思可能是
“/Users/apple/Documents/list.txt”
,这是一个惊人的答案!非常感谢,不客气。有关“文件存在”的更多信息,请阅读的答案。