python读取多层嵌套文件夹中的文件实例


Posted in Python onFebruary 27, 2020

由于工作安排,需要读取多层文件夹下嵌套的文件,文件夹的结构如下图所示:

python读取多层嵌套文件夹中的文件实例

想到了递归函数,使用python的os.path.isfile方法判断当前是不是可执行文件,如果不是再用os.listdir方法将子目录循环判断。

代码如下

import os
path = 'abc'
path_read = []  #path_read saves all executable files

def check_if_dir(file_path):
  temp_list = os.listdir(file_path)  #put file name from file_path in temp_list
  for temp_list_each in temp_list:
    if os.path.isfile(file_path + '/' + temp_list_each):
      temp_path = file_path + '/' + temp_list_each
      if os.path.splitext(temp_path)[-1] == '.log':  #自己需要处理的是.log文件所以在此加一个判断
        path_read.append(temp_path)
      else:
        continue
    else:
      check_if_dir(file_path + '/' + temp_list_each)  #loop traversal

check_if_dir(path)
#print(path_read)

实现思想就是把所有可执行文件的路径,通过字符串的拼接,完整的放进一个list中,在后面的执行步骤中依次提取进行访问和操作。

由于自己拿到的数据集中,一个文件夹下要么全是文件夹,要么全是文件,所以在第一次写这个函数时,通过temp_list[0] 直接判断list中第一个文件是不是文件。

所以自己第一次写的代码有一个很大的bug,就是当一个文件夹下既有文件夹又有文件的情况下,会尝试将一个文件夹按照文件读取,报错。

第一次代码如下:

import os
path = 'abc'
path_read = []  #path_read saves all executable files

def check_if_dir(file_path):
  temp_list = os.listdir(file_path)  #put file name from file_path in temp_list

  if os.path.isfile(file_path + '/' + temp_list[0]):  #此处直接判断list中第一项是不是文件
    for temp_list_each in temp_list:
      temp_path = file_path + '/' + temp_list_each
      if os.path.splitext(temp_path)[-1] == '.log':
        path_read.append(temp_path)
      else:
        continue
  else:
    for temp_list_each in temp_list:
      check_if_dir(file_path + '/' + temp_list_each)  #loop traversal

check_if_dir(path)  #put all path in path_read
#print(path_read)

以上这篇python读取多层嵌套文件夹中的文件实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 Python
python机器学习之KNN分类算法
Aug 29 Python
Python随机生成身份证号码及校验功能
Dec 04 Python
python实现词法分析器
Jan 31 Python
django认证系统 Authentication使用详解
Jul 22 Python
想学画画?python满足你!
Dec 24 Python
python Protobuf定义消息类型知识点讲解
Mar 02 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 Python
python+opencv实现目标跟踪过程
Jun 21 Python
python统计文章中单词出现次数实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
Feb 27 #Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 #Python
Python如何使用OS模块调用cmd
Feb 27 #Python
python之生成多层json结构的实现
Feb 27 #Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 #Python
You might like
php 字符串替换的方法
2012/01/10 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
js jquery做的图片连续滚动代码
2008/01/06 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
python 快速排序代码
2009/11/23 Python
python模拟鼠标拖动操作的方法
2015/03/11 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
python实现二维数组的对角线遍历
2019/03/02 Python
在python中修改.properties文件的操作
2020/04/08 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
SQL SERVER面试资料
2013/03/30 面试题
中专毕业生求职简历的自我评价
2013/10/21 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
高二学生评语大全
2014/04/25 职场文书
学习雷锋活动总结
2014/04/29 职场文书
小学班主任评语
2014/12/29 职场文书
创业计划书之面包店
2019/09/17 职场文书
2019年销售部季度工作计划3篇
2019/10/09 职场文书
python游戏开发Pygame框架
2022/04/22 Python
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS