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

问题:os.path.basename()和os.path.dirname()有什么区别?

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

我已经搜索了答案并阅读了一些链接,但听不懂。谁能给一个简单的解释?

What is the difference between os.path.basename() and os.path.dirname()?

I already searched for answers and read some links, but didn’t understand. Can anyone give a simple explanation?


回答 0

这两个函数都使用该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

Both functions use the os.path.split(path) function to split the pathname path into a pair; (head, tail).

The os.path.dirname(path) function returns the head of the path.

E.g.: The dirname of '/foo/bar/item' is '/foo/bar'.

The os.path.basename(path) function returns the tail of the path.

E.g.: The basename of '/foo/bar/item' returns 'item'

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


回答 1

总结一下布雷诺在上面提到的内容

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

path = '/home/User/Desktop/myfile.py'

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)返回一个空字符串。

To summarize what was mentioned by Breno above

Say you have a variable with a path to a file

path = '/home/User/Desktop/myfile.py'

os.path.basename(path) returns the string 'myfile.py'

and

os.path.dirname(path) returns the string '/home/User/Desktop' (without a trailing slash ‘/’)

These functions are used when you have to get the filename/directory name given a full path name.

In case the file path is just the file name (e.g. instead of path = '/home/User/Desktop/myfile.py' you just have myfile.py), os.path.dirname(path) returns an empty string.