python 可控制深度遍历文件夹

增加深度控制,省的以后写了所以做了记录。大神觉得无聊请绕道

这里只输出了控制深度的最后一层

平台:windows10

Python环境:2.7 64位

#coding:utf-8
import os
#遍历文件夹,获得所有文件夹和文件夹的list,获得所有文件夹的list,获得所有文件的list
def Depth_Ergodic(filepath,all_list,allpath_list,allfile_list):
    #遍历filepath下所有文件,包括子目录
    files = os.listdir(filepath)
    for fi in files:
        fi_d = os.path.join(filepath,fi)
        all_list.append(fi_d);
        if os.path.isdir(fi_d):
            Depth_Ergodic(fi_d,all_list,allpath_list,allfile_list)
            allpath_list.append(fi_d);
        else:
            allfile_list.append(os.path.join(filepath,fi_d));
    return all_list,allpath_list,allfile_list;
        
#可控深度遍历,深度值控制遍历深度,sign确认是否进行深度可控,如果需要控制深度则只输出最深层获得的所有的目录
def Depth_Ergodic_new(filepath,allpath_list,depth_value,sign=True):
    if sign:
        #遍历filepath下所有文件,包括子目录
        depth_value-=1;
        if depth_value>=0:
            files = os.listdir(filepath)
            for fi in files:
                fi_d = os.path.join(filepath,fi)
                if os.path.isdir(fi_d):
                    Depth_Ergodic_new(fi_d,allpath_list,depth_value,sign)
                    if depth_value==0:
                        allpath_list.append(fi_d);
                else: pass
                    # print os.path.join(filepath,fi_d)
    else:
        files = os.listdir(filepath)
        for fi in files:
            fi_d = os.path.join(filepath,fi)
            if os.path.isdir(fi_d):
                Depth_Ergodic_new(fi_d,allpath_list,depth_value,sign)
                allpath_list.append(fi_d);
    return allpath_list;


all_list=[];
allpath_list=[];
allfile_list=[];
all_list,allpath_list,allfile_list = Depth_Ergodic(r"C:\monitor_log\CASE_CE_temp_TT",all_list,allpath_list,allfile_list);
for path in allpath_list:
    print path;
for file in allfile_list:
    print file;
for file in all_list:
    print file;
    
depth_value=3;
allpath_list = Depth_Ergodic_new(r"C:\monitor_log\CASE_CE_temp_TT",[],depth_value,False);
for path in allpath_list:
    print path;











  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值