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脚本实现查找webshell的方法
Jul 31 Python
Python实现快速多线程ping的方法
Jul 15 Python
浅谈pyhton学习中出现的各种问题(新手必看)
May 17 Python
Python随机读取文件实现实例
May 25 Python
python模块之time模块(实例讲解)
Sep 13 Python
python学习之matplotlib绘制散点图实例
Dec 09 Python
python3转换code128条形码的方法
Apr 17 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
Jul 23 Python
Keras 使用 Lambda层详解
Jun 10 Python
Python中读取文件名中的数字的实例详解
Dec 25 Python
python获取淘宝服务器时间的代码示例
Apr 22 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 ctype函数中文翻译和示例
2014/03/21 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
python中引用与复制用法实例分析
2015/06/04 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
Django 使用logging打印日志的实例
2018/04/28 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
解决python 读取 log日志的编码问题
2019/12/24 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
自荐书4要点
2014/01/25 职场文书
个人自我鉴定总结
2014/03/25 职场文书
新闻发布会主持词
2014/03/28 职场文书
超市商业计划书
2014/05/04 职场文书
项目负责人岗位职责
2015/02/15 职场文书
会计工作检讨书
2015/02/19 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书