Python 如何从pathlib.path获取给定文件所在的文件夹名称?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/35490148/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 16:30:05  来源:igfitidea点击:

How to get folder name, in which given file resides, from pathlib.path?

pythonfilenamespathlib

提问by trainset

Is there something similar to os.path.dirname(path), but in pathlib?

是否有类似于os.path.dirname(path), 但在 pathlib 中的东西?

采纳答案by larsks

It looks like there is a parentselement that contains all the parent directories of a given path. E.g., if you start with:

看起来有一个parents元素包含给定路径的所有父目录。例如,如果您从以下内容开始:

>>> import pathlib
>>> p = pathlib.Path('/path/to/my/file')

Then p.parents[0]is the directory containing file:

然后p.parents[0]是包含file以下内容的目录:

>>> p.parents[0]
PosixPath('/path/to/my')

...and p.parents[1]will be the next directory up:

...p.parents[1]并将是下一个目录:

>>> p.parents[1]
PosixPath('/path/to')

Etc.

等等。

p.parentis another way to ask for p.parents[0]. You can convert a Pathinto a string and get pretty much what you would expect:

p.parent是另一种请求方式p.parents[0]。您可以将 aPath转换为字符串并获得几乎您所期望的结果:

>>> str(p.parent)
'/path/to/my'

And also on any Pathyou can use the .absolute()method to get an absolute path:

并且在任何Path您都可以使用该.absolute()方法获取绝对路径的情况下:

>>> os.chdir('/etc')
>>> p = pathlib.Path('../relative/path')
>>> str(p.parent)
'../relative'
>>> str(p.parent.absolute())
'/etc/../relative'

Note that os.path.dirnameand pathlibtreat paths with a trailing slash differently. The pathlibparent of some/path/is some:

请注意,os.path.dirnamepathlib以不同的方式对待带有斜杠的路径。的pathlib父级some/path/some

>>> p = pathlib.Path('some/path/')
>>> p.parent
PosixPath('some')

While os.path.dirnameon some/path/returns some/path:

虽然os.path.dirnamesome/path/收益some/path

>>> os.path.dirname('some/path/')
'some/path'