需求

有的时候我们想从文件路径中提取出包含扩展的文件名,有的时候需要不包括扩展的文件名,还有的时候想要获取文件所在目录,在python中如何快速实现呢?

实现

我们有如下路径

D:\Worksheet\python\course\projects-sources\String_search_from_multiple_files\files\file1.txt

现在我们的目标有两个:

  1. 提取出包含扩展的文件名,针对这个路径来说就是 file1.txt
  2. 提取不包含扩展的文件名,针对这个路径来说就是file1
  3. 提取文件所在目录,针对这个路径就是
D:\Worksheet\python\course\projects-sources\String_search_from_multiple_files\files

我们来一一实现如下:
下面需要导入os模块
import os

提取包含扩展的文件名

使用os.path.basename就能从路径中提取包含扩展的文件名

path = r"D:\Worksheet\python\course\projects-sources\String_search_from_multiple_files\files\file1.txt"
fileName = os.path.basename(path)
print(fileName)

输出如下:
file1.txt

提取不包含扩展的文件名

这个首先需要把路径中扩展名之前内容和后面的内容分开,使用
dirStr, ext = os.path.splitext(path)
dirStr就是除了扩展名之前的内容,在这里就是
D:\Worksheet\python\course\projects-sources\String_search_from_multiple_files\files\file1
也就是少了 .txt

然后再使用路径分隔符分割,并获取最后一项就能得到我们想要的结果,代码如下

path = r"D:\Worksheet\python\course\projects-sources\String_search_from_multiple_files\files\file1.txt"

dirStr, ext = os.path.splitext(path)
file = dirStr.split("\\")[-1]
print(file)

输出如下:
file1

提取文件所在目录

这个也很简单,使用os.path.dirname就能获得路径的目录了
,代码如下

path = r"D:\Worksheet\python\course\projects-sources\String_search_from_multiple_files\files\file1.txt"
directory = os.path.dirname(path)
print(directory)

输出如下:
D:\Worksheet\python\course\projects-sources\String_search_from_multiple_files\files

把它们综合起来,运行的效果如下图:
运行效果

后记

如果您也对python有兴趣,我这里有一本《python编程手册》,里面几乎囊括了python的方方面面(1000页),可以作为字典使用以备忘记知识点的时候进行查询。也可以作为从入门到精通的精读教程,实乃居家旅行、闯荡python江湖的不二法宝,领取方式:在鄙人的共重号(python实例实战)里发送 “python学习手册“” 进行领取,鄙人小号里有学习python的良师益友,还有每天的实战实例。您的支持是我最大的动力,感谢!
资料

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐