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

获取Python中文件的文件夹名称

贺宏逸
2023-03-14

在Python中,我应该使用什么命令来获取包含我正在处理的文件的文件夹的名称?

“C:\folder1\folder2\filename.xml”

这里"folder2"就是我想要得到的。

我唯一想到的是使用os.path.split两次:

folderName = os.path.split(os.path.split("C:\folder1\folder2\filename.xml")[0])[1]

还有更好的方法吗?

共有3个答案

劳和雅
2023-03-14

这是相当古老的,但是如果您使用Python 3.4或更高版本,请使用PathLib。

# using OS
import os
path=os.path.dirname("C:/folder1/folder2/filename.xml")
print(path)
print(os.path.basename(path))

# using pathlib
import pathlib
path = pathlib.PurePath("C:/folder1/folder2/filename.xml")
print(path.parent)
print(path.parent.name)
芮学
2023-03-14

您正在寻找使用Dilname。如果你只想要一个目录,你可以使用os.path.basename,

当把所有这些放在一起时,看起来是这样的:

os.path.basename(os.path.dirname('dir/sub_dir/other_sub_dir/file_name.txt'))

那应该会让你“other_sub_dir”

以下不是理想的方法,但我最初建议使用os.path.split,只获取最后一项。看起来是这样的:

os.path.split(os.path.dirname('dir/sub_dir/other_sub_dir/file_name.txt'))[-1]
欧阳斌
2023-03-14

您可以使用dirname

os.path.dirname(path)

返回路径名路径的目录名。这是通过将path传递给函数分裂()返回的对的第一个元素。

给定完整的路径,然后可以正常分割以获得路径的最后一部分。例如,通过使用basename

os.path.basename(path)

返回路径名路径的基名称。这是通过传递函数split()的路径返回的第二个元素。请注意,此函数的结果不同于Unix basename程序;其中'/foo/bar/'的basename返回'bar',basename()函数返回一个空字符串('')。

总而言之:

>>> import os
>>> path=os.path.dirname("C:/folder1/folder2/filename.xml")
>>> path
'C:/folder1/folder2'
>>> os.path.basename(path)
'folder2'
 类似资料:
  • 问题内容: 在Python中,我应该使用哪个命令来获取包含正在使用的文件的文件夹的名称? 这就是我想要得到的。 我唯一想出的就是使用两次: 有什么更好的方法吗? 问题答案: 您可以使用: 返回路径名path的目录名。这是通过将路径传递给函数split()返回的对中的第一个元素。 给定完整路径,然后您可以正常拆分以获取路径的最后一部分。例如,通过使用: 返回路径名path的基本名称。这是通过将路径传

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

  • 本文向大家介绍Python获取指定文件夹下的文件名的方法,包括了Python获取指定文件夹下的文件名的方法的使用技巧和注意事项,需要的朋友参考一下 本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名。 一、os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件。 该函数可以得到一个三元tupple(dirpath, dirnames, fil

  • 问题内容: 我正在尝试编写脚本以从Python中FTP服务器的最新子目录获取最新文件。我的问题是我无法找出最新的子目录。有两个选项可用,子目录具有ctime可用。在目录名称中还提到了日期,即在哪个日期创建了目录。但是我不知道如何获取最新目录的名称。我想出了以下方法(希望服务器端按最新的ctime排序)。我已经按照以下方式进行了操作,如果第一个对象是最新目录,它将可以正常工作。 但是,有什么方法可以

  • 这个问题是本文的后续内容:Python-根据子文件夹和文件名重命名子文件夹中的文件。 我正在尝试遍历中子文件夹中的文件,并以指定的方式重命名每个文件。以下是我目前掌握的代码: 当我运行该行时,,它正确地显示保存在中的名为的文件将被重命名为。 但是,os.rename命令返回以下错误: "必须是字符串,而不是列表。" 这似乎是由于我在os.rename命令中使用了“文件名”。据我所知,os.rena

  • 问题内容: 我在文档文件夹中获取文件名的代码有什么问题? 我以为我已正确阅读了文档,并且我对documents文件夹中的内容非常确定,但是“ fileList”没有显示任何内容?“目录”显示文件夹的路径。 问题答案: 此解决方案适用于 Swift 4 (Xcode 9.2)和 Swift 5 (Xcode 10.2.1+): 这是一个可重用的FileManager扩展,它还允许您跳过或在结果中包含