os.path.basename()和os.path.dirname()之间有什么区别?

use*_*210 122 python

我是Python编程的新手,在学习的过程中我对这两个函数产生了疑问.我已经搜索了答案并阅读了一些链接,但没有理解.谁能给出一些简单的解释?

Bre*_*ira 239

这两个函数都使用该os.path.split(path)函数将路径名拆分path为一对; (head, tail).

os.path.dirname(path)函数返回路径的头部.

例如:的名字'/foo/bar/item''/foo/bar'.

os.path.basename(path)函数返回路径的尾部.

例如:'/foo/bar/item'退货的基本名称'item'

来自:http://docs.python.org/2/library/os.path.html#os.path.basename

  • 请记住,如果用`item /`替换`item`,这是一个目录,那么`os.path.split('foo/bar/item /')`返回`('foo/bar/item','' )`. (21认同)
  • @jkdev是的,如果要获取路径中的最后一个目录名称,则应使用:`os.path.basename(os.path.dirname(path))` (4认同)

Uma*_*gir 8

总结上面 Breno 提到的内容

假设您有一个带有文件路径的变量

path = '/home/User/Desktop/myfile.py'
Run Code Online (Sandbox Code Playgroud)

os.path.basename(path) 返回字符串 'myfile.py'

os.path.dirname(path)返回字符串'/home/User/Desktop'(没有尾部斜杠'/')

当您必须获取给定完整路径名的文件名/目录名时,将使用这些函数。

如果文件路径只是文件名(例如,而不是path = '/home/User/Desktop/myfile.py'您只有myfile.py),则os.path.dirname(path)返回一个空字符串。