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模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
Python发送以整个文件夹的内容为附件的邮件的教程
May 06 Python
Python读取Excel的方法实例分析
Jul 11 Python
从源码解析Python的Flask框架中request对象的用法
Jun 02 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
Python优先队列实现方法示例
Sep 21 Python
EM算法的python实现的方法步骤
Jan 02 Python
Python 实现字符串中指定位置插入一个字符
May 02 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
对Python实现累加函数的方法详解
Jan 23 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
Mar 05 Python
Python变量及数据类型用法原理汇总
Aug 06 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防攻击代码升级版
2010/12/29 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
10个简化PHP开发的工具
2014/12/25 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
php获取远程文件大小
2015/10/20 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
Javascript核心读书有感之语句
2015/02/11 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
python回调函数的使用方法
2014/01/23 Python
python多线程用法实例详解
2015/01/15 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
Python猴子补丁知识点总结
2020/01/05 Python
python suds访问webservice服务实现
2020/06/26 Python
Python发送邮件实现基础解析
2020/08/14 Python
CSS3中的常用选择器使用示例整理
2016/06/13 HTML / CSS
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
学生个人求职自荐信格式
2013/09/23 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
合同纠纷调解书
2015/05/20 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
漫画《尖帽子的魔法工坊》宣布动画化
2022/04/06 日漫
Java 垃圾回收超详细讲解记忆集和卡表
2022/04/08 Java/Android