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 常用string函数(收藏)
May 30 Python
python实现随机梯度下降(SGD)
Mar 24 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
浅谈numpy数组中冒号和负号的含义
Apr 18 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
Python日期时间Time模块实例详解
Apr 15 Python
如何给Python代码进行加密
Jan 10 Python
python如何获取apk的packagename和activity
Jan 10 Python
Python之Matplotlib文字与注释的使用方法
Jun 18 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 session 检测和注销
2009/03/16 PHP
php调用shell的方法
2014/11/05 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
Yii2.0框架实现带分页的多条件搜索功能示例
2019/02/20 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
使用python实现简单五子棋游戏
2019/06/18 Python
django+echart数据动态显示的例子
2019/08/12 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
利用python计算时间差(返回天数)
2019/09/07 Python
python3跳出一个循环的实例操作
2020/08/18 Python
纯CSS实现设置半个字符的样式
2014/07/03 HTML / CSS
高中毕业自我鉴定
2013/12/13 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
助学贷款贫困证明
2014/09/23 职场文书
欠款起诉书范文
2015/05/19 职场文书