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语言描述随机梯度下降法
Jan 04 Python
Python基于TCP实现会聊天的小机器人功能示例
Apr 09 Python
python绘制立方体的方法
Jul 02 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
Python操作rabbitMQ的示例代码
Mar 19 Python
Python OpenCV实现视频分帧
Jun 01 Python
Django的models中on_delete参数详解
Jul 16 Python
python内存管理机制原理详解
Aug 12 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
python lambda 表达式形式分析
Apr 03 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
PHP中的array数组类型分析说明
2010/07/27 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
PHP循环结构实例讲解
2014/02/10 PHP
JS 实现图片直接下载示例代码
2013/07/22 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
2013/12/05 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
[35:27]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第二场 10.29
2020/10/29 DOTA
Python打印斐波拉契数列实例
2015/07/07 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
python版opencv摄像头人脸实时检测方法
2018/08/03 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
python构建指数平滑预测模型示例
2019/11/21 Python
Python绘制组合图的示例
2020/09/18 Python
Python eval函数原理及用法解析
2020/11/14 Python
在购买印度民族服饰:Soch
2020/09/15 全球购物
护士在校生自荐信
2014/02/01 职场文书
先进集体事迹材料
2014/02/17 职场文书
保险内勤岗位职责
2014/04/05 职场文书
团日活动总结书
2014/05/08 职场文书
课程设计的心得体会
2014/09/03 职场文书
卖车协议书范例
2014/09/16 职场文书
2019旅游导游工作总结
2019/06/27 职场文书