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函数缺省值与引用学习笔记分享
Feb 10 Python
Python文件右键找不到IDLE打开项解决办法
Jun 08 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
python绘制圆柱体的方法
Jul 02 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
Python 使用threading+Queue实现线程池示例
Dec 21 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
Python序列化pickle模块使用详解
Mar 05 Python
基于Django集成CAS实现流程详解
Nov 28 Python
python des,aes,rsa加解密的实现
Jan 16 Python
python基础学习之递归函数知识总结
May 26 Python
Github 使用python对copilot做些简单使用测试
Apr 14 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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php实现mysql封装类示例
2014/05/07 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
实例分析javascript中的异步
2020/06/02 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
python 处理string到hex脚本的方法
2018/10/26 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
Python3常见函数range()用法详解
2019/12/30 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
化工专业推荐信范文
2013/11/28 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
授权收款委托书
2014/09/23 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书