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多进程编程技术实例分析
Sep 16 Python
Python地图绘制实操详解
Mar 04 Python
解决python有时候import不了当前的包问题
Aug 28 Python
Django之PopUp的具体实现方法
Aug 31 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
Python之Class&Object用法详解
Dec 25 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
Python实现微信表情包炸群功能
Jan 28 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
实现“上一页”和“下一页按钮
2006/10/09 PHP
我的群发邮件程序
2006/10/09 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
Use Word to Search for Files
2007/06/15 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
JavaScript中rem布局在react中的应用
2015/12/09 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
jquery实现图片预加载
2015/12/25 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
2016/03/02 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
Python中实现参数类型检查的简单方法
2015/04/21 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python中关于浮点数的冷知识
2019/09/22 Python
flask项目集成swagger的方法
2020/12/09 Python
Python 里最强的地图绘制神器
2021/03/01 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
资深生产主管自我评价
2013/09/22 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
2014年安全工作总结范文
2014/11/13 职场文书
2014年应急工作总结
2014/12/11 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript