我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python中列出目录中的文件的五种方法小结

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python中列出目录中的文件的五种方法小结

1. 引言

文件和目录相关操作是软件工程师必备的基本技能。
我不是说将一个文件复制到Windows文件资源管理器上的另一个文件夹中。
我是说使用代码来进行自动化批量处理操作。
今天,我们将深入探讨一个具体问题:

如何根据需要列出特定目录下的所有文件名?

我将介绍5种用Python实现的方法。不同的方法适用于不同的使用场景。

2. 使用os.listdir()

使用Python中的os模块下的方法listdir()是一个不错的选择,样例如下:

>>> import os
>>> os.listdir()

上面的代码将打印当前路径下所有文件和目录的名称。
如果我们想基于特定路径来打印结果,只需传递给函数os.listdir() 相应的参数,举例如下:

>>> os.listdir(myPath)

如果我们只想打印所有文件不包含目录,那么我们可以使用os.path.isfile() 来进行相应的过滤,如下:

>>> import os
>>> files = [f for f in os.listdir() if os.path.isfile(f)]

当然,对于目录,同样可以使用函数os.path.isdir() 进行过滤,代码如下:

import os
files = [f for f in os.listdir() if os.path.isdir(f)]

如果我们只需要特定类型的文件怎么办?
完全不用担心。Python为复杂场景提供了更多选择。

3. 使用os.walk()

os模块中还有另一个方法 os.walk() 。顾名思义,它可以一层一层地“遍历”目录树。当我们调用os.walk() 函数时,它将返回一个生成器。此时每次调用next() 方法生成下一个值时,它都会进入到一个layer ,结果是一个包含3个项的元组:(dirpath、dirname、filename) 。

举例,如果要获取第二层中所有文件夹的名称,代码如下所示:

from os import walk

f = []
layer = 1
w = walk("/Users/zhao")
for (dirpath, dirnames, filenames) in w:
    if layer == 2:
        f.extend(dirnames)
        break
    layer += 1

4. 在Glob模块中使用正则表达式

有时我们不想获取所有文件的名称,而是希望精确获取特定类型文件的名称。
由于glob模块能够添加用于搜索的正则表达式,因此它将是我们进行此类操作的首选。

>>> import glob
>>> glob.glob("/sys/*.log")

上面的代码将列出以log 结尾的文件名。

5. 使用pathlib

从Python 3.4开始,有一个名为pathlib 的模块也很有用。
借助列表生成式的技巧,我们只需使用一行代码即可生成当前路径的所有文件名:

import pathlib

files = [f for f in pathlib.Path().iterdir() if f.is_file()]

令人奇怪的是,Path() 还附带了glob() 函数。(无需在Python文件顶部显式导入glob模块)

import pathlib

files = [f for f in pathlib.Path().glob("/sys/*.log")]

6. 使用os.scandir()

经典的os.listdir() 函数很直观,但对于包含大量文件的大型目录来说效率并不高。因此,Python 3.5引入了一个新的功能类似的函数os.scandir() 。
是的,有的同学可能已经猜到了。此函数将返回一个生成器,并不是所有名称的列表。在某些情况下,我们并不需要同时获取所有名称,此时会更有效。

>>> a=os.scandir()
>>> next(a)
<DirEntry 'test1.py'>
>>> next(a)
<DirEntry 'test2.py'>

7. 总结

本文重点介绍了在Python中如何列出目录中的文件的五种方法,并针对每种方法给出了相应的代码样例。

到此这篇关于Python中列出目录中的文件的五种方法小结的文章就介绍到这了,更多相关Python 列出目录文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python中列出目录中的文件的五种方法小结

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python中列出目录中的文件的五种方法小结

本文主要介绍了Python中列出目录中的文件的五种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-28

Python中列出目录中的文件方法有哪些

这篇文章主要介绍了Python中列出目录中的文件方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python中列出目录中的文件方法有哪些文章都会有所收获,下面我们一起来看看吧。1. 引言文件和目录相关操
2023-07-05

Python中星号的五种用法小结

本文主要介绍了Python中星号的五种用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-28

Linux删除目录下的文件的10种方法小结

看到了一遍文章,便突发奇想的想起linux中删除目录下的所有文件的方法;整理了几个,如有不足,还望读者不吝赐教! 删除当前目录下的文件 1.rm -f * #最经典的方法,删除当前目录下的所有类型的文件 2.find . -type
2022-06-04

Python中取整的几种方法小结

前言 对每位程序员来说,在编程过程中数据处理是不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理。取整的方式则包括向下取整、四舍五入、向上取整等等。下面就来看看在Python中取整的几种方法吧。 1、向下取整
2022-06-04

Python实现将内容写入文件的五种方法总结

本篇带你详细看一下python将内容写入文件的方法以及细节,主要包括write()方法、writelines() 方法、print() 函数、使用 csv 模块、使用 json 模块,需要的可以参考一下
2023-05-17

Python遍历目录中的所有文件的方法

os.walk生成器 os.walk(PATH), PATH是个文件夹路径,当然可以用.或者../这样啦. 返回的是个三元元组为元素的列表, 每个元素代表了一个文件夹下的内容.第一个就是当前文件夹下内容. 返回的三元元组代表(该工作文件夹,
2022-06-04

在Python中移动目录结构的方法

来源:http://stackoverflow.com/questions/3806562/ways-to-move-up-and-down-the-dir-structure-in-python#Moving up/down dir st
2022-06-04

IDEAmaven项目中刷新依赖的两种方法小结

这篇文章主要介绍了IDEAmaven项目中刷新依赖的两种方法小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-21

python中多种文件处理的方法

基础操作在python 中,文件的操作分为面向目录和面向文件的,本质都是一样的。面向目录的常见操作见下表:方法作用方法作用os.getcwd()得到当前目录os.listdir()列出所有文件和目录os.removedirs( xxx)删除
2023-01-31

使用bash shell删除目录中的特定文件的3种方法

我是一名Linux新用户。现在我需要清理一个下载目录中的文件,其实我就是想从~/Download/文件夹删去除了以下格式的文件外所以其它文件: 1.*.iso - 所有的iso格式的文件。 2.*.zip - 所有zip格式的文件。 我如何
2022-06-04

linux如何列出你系统中的所有文件和目录

这篇文章给大家分享的是有关linux如何列出你系统中的所有文件和目录的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。列出你系统中的所有文件和目录要看到你系统中的所有目录,运行:find / -type d | le
2023-06-27

python中用shutil.move移动文件或目录的方法实例

在python操作中大家对os,shutil,sys,等通用库一定不陌生,下面这篇文章主要给大家介绍了关于python中用shutil.move移动文件或目录的相关资料,需要的朋友可以参考下
2022-12-24

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录