Python中文件遍历的两种方法

作者:junjie 时间:2022-01-28 20:34:03 

关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历。

方法一:利用os.walk

os.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()会返回一个generater,所以调用的时候一定要放到for循环中。


import os
def walk_dir(dirname):
 for root,dirs,files in os.walk(dirname):
  for f in files:
   yield os.path.join(root, f)



方法二:利用os.listdir()

这个方法也比较简单,列出目录然后判断是不是文件夹,不是的话直接返回文件路径,是的话递归调用。


import os
def walk_dir2(dirname):
 for d in os.listdir(dirname):
  path = os.path.join(dirname, d)
  if os.path.isdir(path):
   #note recursive in for...in...
   for f in walk_dir2(path):
    yield f
  else:
   yield path


这里值得一提的是,由于函数中使用了yield,所以会被认为是一个generater,递归调用的时候也需要放到for循环中,否则函数并不会被真正执行。最新的Python 3.3中引入了yield from语法,可以解决上面的问题。

标签:Python,文件遍历
0
投稿

猜你喜欢

  • Python获取DLL和EXE文件版本号的方法

    2023-09-07 11:43:23
  • python实现坦克大战游戏 附详细注释

    2023-06-26 07:58:13
  • SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期

    2011-10-24 20:14:52
  • ExtJS 开发总结

    2009-04-28 13:05:00
  • Django如何使用第三方服务发送电子邮件

    2021-08-06 03:49:15
  • PHP5中使用DOM控制XML实现代码

    2023-09-30 09:00:07
  • 一行代码实现Python动态加载依赖

    2021-11-22 19:10:39
  • 人工智能学习pyTorch自建数据集及可视化结果实现过程

    2022-08-04 14:54:33
  • 初学者学习Python好还是Java好

    2021-03-16 21:48:32
  • 在MySQL数据库中如何修改密码及访问限制

    2008-11-27 16:36:00
  • Python实现强制复制粘贴的示例详解

    2021-03-30 23:58:43
  • python多进程读图提取特征存npy

    2022-09-05 11:38:06
  • python实战练习之最新男女颜值打分小系统

    2021-06-12 04:56:27
  • 详解Python中如何写控制台进度条的整理

    2023-12-31 03:32:51
  • 在Python中操作列表之list.extend()方法的使用

    2023-07-02 20:43:16
  • 在ASP.NET 2.0中操作数据之二十三:基于用户对修改数据进行限制

    2023-07-12 08:52:20
  • HTML5 的五个激动人心的特性

    2009-01-02 17:36:00
  • Python pyinotify日志监控系统处理日志的方法

    2023-12-11 08:57:37
  • 对python中的logger模块全面讲解

    2021-01-17 00:49:17
  • 考虑SQL Server安全时所应注意的几个方面

    2009-01-04 13:57:00
  • asp之家 网络编程 m.aspxhome.com