当前位置: 首页 > 知识库问答 >
问题:

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

上官景铄
2023-03-14

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

共有2个答案

东方新霁
2023-03-14

我来这里寻找非常相似的东西。我的解决方案,基于上述@larsks,并假设你想保留除文件名之外的整个路径,是做:

>>> import pathlib
>>> p = pathlib.Path('/path/to/my/file')
>>> pathlib.Path('/'.join(list(p.parts)[1:-1])+'/')

基本上,< code>list(p.parts)[1:-1]创建一个路径元素列表,从第二个元素开始到第n-1个元素,然后用“/”将它们连接起来,形成结果字符串的路径。编辑结尾的“/”号,根据需要进行调整。

陈铭晨
2023-03-14

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

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

p.parents[0] 是包含文件的目录:

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

…和<代码>p。家长[1]将是下一个向上的目录:

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

等等。

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

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

并且在任何Path上,您可以使用.()方法获取绝对路径:

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

请注意,os.path.dirnamepathlib 对带有尾部斜杠的路径的处理方式不同。some/path/pathlib 父级是一些

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

而< code>some/path/上的< code>os.path.dirname返回< code>some/path:

>>> os.path.dirname('some/path/')
'some/path'
 类似资料:
  • 问题内容: 我正在使用此代码来获取给定文件夹中的所有文件。有没有办法只获取文件夹? 问题答案:

  • 问题内容: 我需要使用文件夹中文件的所有名称创建一个列表。 例如,如果我有: 我想将它们存储为 with 作为值。 用Java做到最好的方法是什么? PS:我在Mac OS X上 问题答案: 你可以这样做: 你只想获取JPEG文件还是所有文件?

  • 问题内容: 如何通过Java读取文件夹中的所有文件? 问题答案: Java 8提供了Files.walk API。

  • 问题内容: 我无法在脚本化的Jenkins Pipeline中的给定目录中创建文件名的简单列表。我尝试了在SO和其他论坛上发布的许多Groovy Script示例,但是该功能被阻止或找不到方法或其他方法。 这似乎是最简单的 但这会错误地解决相对路径,因此出现此错误: 我还尝试用以下方法包装它: 但是有同样的错误: 这不会产生错误,只会将一个文件添加到列表中: 然后,除第一个文件外,所有文件的内容都

  • 问题内容: 我需要从文件夹中读取所有“ .txt”文件(用户需要选择此文件夹)。 请告知如何做? 问题答案: 您可以使用类,这是非常简单的用法 只需创建一个实例,您想要如何覆盖接受方法

  • 如何从资源文件夹的子文件夹中读取文件。 我在资源文件夹中有一些json文件,例如: 现在我想在我的课堂上读到这个 这是我正在尝试的,但是失败了。 不起作用,那么我正在尝试: 这两样东西都不工作。