Python3.遍历某文件夹提取特定文件名的实例


Posted in Python onApril 26, 2018

批量处理文件时,常需要先遍历某个路径提取特定条件的文件名。这篇写一个暴力遍历但很简洁的方法,真的非常简洁但是非常暴力。

例子目标是:获得存放遥感数据的文件夹下文件夹名以“_BAD”结尾的文件夹内容。因为该文件下分级很多(年/月/产品类型/),目标文件夹很多且存在在最后一级,手动查看很烦。

代码如下(知识点总结代码后):

# -*- coding: utf-8 -*-
"""
遍历某路径下所有文件夹,获得特定文件夹下所有文件
很暴力,真的遍历了所有的文件夹
20180124
@author: 墨大宝
"""
import os
TARGETPATH = r'F:\MODIS_DATA'
records = []
for currentDir, _, includedFiles in os.walk(TARGETPATH):
 if not currentDir.endswith('_BAD'): continue
 else:
  records.append(currentDir) # 将以“_BAD”结尾的文件夹名加入records
  records.extend(includedFiles) # 将该文件夹内的文件名列表扩展到records
# 将records写入.txt
txtFile = open(os.path.join(TARGETPATH, '02_04_BAD.txt'), 'w')
txtFile.write(os.linesep.join(records))
txtFile.close()
# 将排序后的records写入.txt
with open(os.path.join(TARGETPATH, '02_04_BAD_SORTED.txt'), 'w') as txtFile:
 txtFile.write('\n'.join(sorted(records)))

os.walk()返回Directory tree generator。每次生成格式为(dirpath, dirnames, filenames) 的tuple,元素依次是当前路径、当前路径下文件夹列表、当前路径下文件名列表。

list的.append()、.extend()和.sort()方法都是原地修改,sorted()函数不是。

将list写入.txt文件时需要把list转为str,直接用str()函数强转会很丑,用换行符连接list每个元素会好看很多。

os.path代表系统换行符,windows下为”\r\n”,其他系统多是”\n”。然而无论是用os.path还是”\n”连接列表元素,最后用windows记事本打开都一样换行,但是用vs code打开的话os.path会多换一行即看上去一行间一行,这里面到底为啥有点说到,可能和Python的write机制有关,暂时不深究(留坑)。

关于文件读写,大多数资料推荐with as形式,确实更简洁一点。

PS:

说os.walk()暴力是因为它真的按照目录树遍历了所给路径中的所有文件夹和文件,文件量大而所要找的文件名少的情况下会慢一些(其实我觉得慢不了多少),用os.listdir()写成递归函数的话执行效率可能会高一些,但是os.walk()逻辑简单好写,各位随意,我干了!

以上这篇Python3.遍历某文件夹提取特定文件名的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现apahce网站日志分析示例
Apr 02 Python
Python-基础-入门 简介
Aug 09 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
Python使用装饰器进行django开发实例代码
Feb 06 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
Feb 26 Python
python下载微信公众号相关文章
Feb 26 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
python实现银行管理系统
Oct 25 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
Python连接Impala实现步骤解析
Aug 04 Python
python爬虫筛选工作实例讲解
Nov 23 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 #Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 #Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 #Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 #Python
TensorFlow损失函数专题详解
Apr 26 #Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 #Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
Apr 26 #Python
You might like
农民C键的运用技巧
2020/03/04 星际争霸
php使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
js实现电灯开关效果
2021/01/19 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
远东集团网络工程师面试题
2014/10/20 面试题
员工自我鉴定范文
2013/10/06 职场文书
教师师德承诺书
2014/03/26 职场文书
会计学习心得体会
2014/09/09 职场文书
党员自我剖析材料范文
2014/10/06 职场文书