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数组复制拷贝的实现方法
Jun 09 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
python基础入门学习笔记(Python环境搭建)
Jan 13 Python
python入门教程 python入门神图一张
Mar 05 Python
Python 函数基础知识汇总
Mar 09 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
Apr 27 Python
基于django micro搭建网站实现加水印功能
May 22 Python
Python爬虫实例——爬取美团美食数据
Jul 15 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操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
uploadify 3.0 详细使用说明
2012/06/18 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
python的文件操作方法汇总
2017/11/10 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
2020/07/13 Python
什么是Python包的循环导入
2020/09/08 Python
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
深圳茁壮笔试题
2015/05/28 面试题
2014年社区学雷锋活动总结
2014/03/09 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
保管员岗位职责
2015/02/14 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
争做文明公民倡议书
2019/06/24 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS