栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python 使用listdir 遍历目录

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python 使用listdir 遍历目录

python 遍历目录, 有 glob, walk, listdir 等模块, 对于大多数应用场景来说, glob和walk已经非常够用了.

glob相对非常方便, walk我之前也写了一个文章(python os.walk的返回值) 介绍.

glob, walk虽然遍历方便, 但是不能够体现出 多级目录层次 的关系, 我也没想到我的应用场景绕不开 listdir 的坎. 使用while递归的方式实现了一个遍历. 供大家参考.

import os,sys
if len(sys.argv) < 1:
    print('请指定目录')
    
_dir = sys.argv[1]
_ts = []
_sub = True

while True:
    if _sub:
        # 进入子目录
        fs, idx, _sub = os.listdir(_dir), 0, False
    elif len(_ts) > 0:
        # 递归返回
        _dir, idx, fs = _ts.pop()
    else:
        # 完成
        break

    for i,f in zip(range(idx, len(fs)),fs[idx:]):
        if os.path.isdir(os.path.join(_dir, f)):
            # 目录就保存状态,进入下一级
            _ts.append([_dir, i+1, fs])
            _dir, _sub = os.path.join(_dir, f), True
            break
        else:
        		 # 输出文件
            print(os.path.join(_dir, f))

欢迎大家留言讨论.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号