python 可控制深度遍历文件夹
2018-03-14 16:29
309 查看
增加深度控制,省的以后写了所以做了记录。大神觉得无聊请绕道
这里只输出了控制深度的最后一层
平台: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;
这里只输出了控制深度的最后一层
平台: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;
相关文章推荐
- Python实现文件夹深度优先遍历
- python遍历文件夹,指定遍历深度与忽略目录
- python遍历文件夹——深度优先(DFS)/广度优先(BFS)
- python遍历文件夹,指定遍历深度与忽略目录的方法
- python深度遍历文件夹、获取文件类型、复制文件
- python 遍历所有文件文件夹,并且搜索其中的字符串
- Python 文件夹遍历和文件查找
- Python os.walk遍历文件夹的小错误解决办法
- python 遍历文件夹
- python遍历文件夹和文件
- Python遍历指定文件及文件夹的方法
- python目录操作之python遍历文件夹后将结果存储为xml
- Python:遍历输出某路径下的所有文件和文件夹
- Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
- BCB拷贝文件夹下所有文件和文件夹(深度优先遍历)
- python遍历文件夹下的所有文件
- python中遍历文件夹
- 03-python文件(文件夹复制练习)------使用递归遍历,广度遍历(队列),深度遍历(栈)
- java 深度遍历文件夹中的所有文件
- 广度 深度 遍历文件夹