Python获取文件夹下的所有文件路径小结

 更新时间:2023年10月07日 11:19:33   作者:程序员小麦  
在Python编程过程中,需要获取某一个文件目录下的所有文件,或获取文件目录下的所有指定后缀名的文件等,本文主要介绍了Python获取文件夹下的所有文件路径,感兴趣的可以了解一下

在Python编程过程中,我们常常有这样的需求,需要获取某一个文件目录下的所有文件,或获取文件目录下的所有指定后缀名的文件,亦或要求获取该文件所在的文件夹,还有可能需要替换文件名,删除文件夹。针对这些问题,本文系统总结了这些方法,以供大家参考。

本实例的文件夹放置在桌面,路径为:C:\Users\Smile\Desktop\周汇报,该文件夹下有个子文件夹,子文件夹有一个pdf文件。

1、获取文件夹下的所有文件路径

这里推荐使用os模块下的listdir方法,该方法可以获取该文件夹下的所有文件名称(包含子文件夹名称),之后配合os.path.join方法来获取该文件夹下的所有文件路径。

import os
dir_path = r'C:\Users\Smile\Desktop\周汇报'
file_ls = os.listdir(dir_path)  #获取所有文件名称
file_ls

运行结果如下:

我们可以发现,结果不仅包括了文件名,还包括了子文件夹名。

获取完整路径,在上面基础上使用1行代码即可:

file_ls = [os.path.join(dir_path, file) for file in file_ls]
file_ls

如上图可以发现获取了指定文件夹下的所有文件路径,还包括了子文件夹路径。但是如果我们想要连带获取子文件夹下的文件名该如何操作?

解决方案就是通过os.walk方法进行。它返回3个参数——根目录、根目录下的所有文件、根目录下的子文件夹。它的神奇之处在于获取根目录子文件夹后会继续循环,依次取出根目录下子文件夹下的文件。

path = r'C:\Users\Smile\Desktop\周汇报'
for root, dirs, files in os.walk(path):
    print(root)

运行的结果为:

C:\Users\Smile\Desktop\周汇报
C:\Users\Smile\Desktop\周汇报\数据

可以发现在实验中循环了两次,这里指定输出当前循环的根目录,第一次循环遍历了根目录下的文件,由于该根目录下存在子文件夹,所以又循环了一次以获取子文件夹下的文件,所以第二次循环输出的根目录为子文件夹的位置。

对此,我们可以确定,如果在循环外面指定一个空列表。在每一次循环时将文件名与根目录进行拼接并添加到空列表中,就可以得到根目录下所有的文件路径。

path = r'C:\Users\Smile\Desktop\周汇报'
file_ls = []
for root, dirs, files in os.walk(path):
    root_file_ls = [os.path.join(root, file) for file in files]
    file_ls.append(root_file_ls)
file_ls

结果如下:

结果中可以看到,位于子文件夹下的文件也被添加到文件路径列表了。

2、获取后缀名

这里可以使用os.path.splitext方法来分割路径,它将路径分为两个部分,一个是后缀名,另一个是除后缀名之外的部分。

file = r'C:\\Users\\Smile\\Desktop\\周汇报\\第六周总结_20221024_20221030.pptx'``houzhui = os.path.splitext(file)[1]``houzhui``   ``--结果--``'.pptx'

3、获取指定后缀名的文件

路径的本质是字符串,可以使用endswith方法来判断路径是否以某个字符结尾。现在将r’C:\Users\Smile\Desktop\周汇报’直接路径下(不含子文件夹)的所有docx文件输出。

path = r'C:\Users\Smile\Desktop\周汇报'
file_ls = []
for root, dirs, files in os.walk(path):
    root_file_ls = [os.path.join(root, file) for file in files]
    file_ls.append(root_file_ls)
#因为上面循环了两次,第二次是子文件夹的文件,所以取出第1个元素
#使用endswith判断是否以docx结尾
file_ls = [file for file in file_ls[0] if file.endswith('.docx')]
file_ls

结果如下:

可以看出已经将所有的docx文件输出。

4、修改文件名

使用os.rename(old_name, new_name)来进行。

例子我就不举了,太累了~~~

不过要提醒一点,old_name和new_name都是路径。

5、删除/移动文件

删除文件使用os.remove(路径名)

移动文件需要使用shuilt库,语法如下:

import shutil
shutil.move(old_name, new_name)

6、获取文件所在的文件夹

使用os.path.dirname(path)即可获取

path = r'C:\\Users\\Smile\\Desktop\\周汇报\\第001周总结_20220919_20220925.docx'
os.path.dirname(path)

--结果--
'C:\\\\Users\\\\Smile\\\\Desktop\\\\周汇报'

7、移除文件夹

1.如果使用os.remove(path),此时的文件夹必须是空文件夹,否则会报错。

2.如果是非空文件夹,使用shutil.rmtree(path)即可成功删除。

对于文件路径的操作主要有:文件路径获取、后缀名获取、获取指定后缀名文件、删除/移动文件、替换文件名、获取文件所在的文件夹、移除文件夹。

到此这篇关于Python获取文件夹下的所有文件路径小结的文章就介绍到这了,更多相关Python获取所有文件路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python交互式图形编程实例(一)

    python交互式图形编程实例(一)

    这篇文章主要为大家详细介绍了python交互式图形编程实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 基于Python PaddleSpeech实现语音文字处理

    基于Python PaddleSpeech实现语音文字处理

    PaddleSpeech基于飞桨PaddlePaddle的语音方向的开源模型库,用于语音和音频中的各种关键任务的开发,包含大量基于深度学习前沿和有影响力的模型。本文将介绍如何通过PaddleSpeech实现语音文字处理,感兴趣的可以学习一下
    2022-01-01
  • 置信椭圆原理以及椭圆图形绘制方式

    置信椭圆原理以及椭圆图形绘制方式

    这篇文章主要介绍了置信椭圆原理以及椭圆图形绘制方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python寻找两个有序数组的中位数实例详解

    Python寻找两个有序数组的中位数实例详解

    这篇文章主要介绍了Python寻找两个有序数组的中位数,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-12-12
  • Python中的for循环详情

    Python中的for循环详情

    这篇文章主要介绍了Python中的for循环,for语句实际上解决的是循环问题。在很多的高级语言中都有for循环(for loop)。下面就来简单给大家介绍Python中的for循环的相关资料,需要的朋友可以参考一下
    2021-10-10
  • 利用打码兔和超人打码自封装的打码类分享

    利用打码兔和超人打码自封装的打码类分享

    打码是利用人工智能大量输入验证码的意思,这里提供一个自封装的打码类,需要的朋友可以参考下
    2014-03-03
  • 如何利用Python+OpenCV实现简易图像边缘轮廓检测(零基础)

    如何利用Python+OpenCV实现简易图像边缘轮廓检测(零基础)

    轮廓是形状分析和物体检测和识别的有用工具,下面这篇文章主要给大家介绍了关于如何利用Python+OpenCV实现简易图像边缘轮廓检测(零基础)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 程序员的七夕用30行代码让Python化身表白神器

    程序员的七夕用30行代码让Python化身表白神器

    转眼又到了咱们中国传统的情人节七夕了,今天笔者就带大家来领略一下用Python表白的方式,感兴趣的朋友跟随小编一起看看吧
    2019-08-08
  • Python实现随机划分图片数据集的示例代码

    Python实现随机划分图片数据集的示例代码

    这篇文章主要为大家详细介绍了如何通过Python实现随机将图片与标注文件划分为训练集和测试集,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • Python采集某网站文档并保存word格式的示例

    Python采集某网站文档并保存word格式的示例

    这篇文章主要介绍了Python采集某网站文档并保存word格式的示例,我们平常需要下载文档的时候,是不是发现,要么不能下载,要么不能复制,那么我们今天来分享一下,如何用Python将这些不给下载的文档给批量下载下来,需要的朋友可以参考下
    2023-07-07

最新评论