Python3.遍历某文件夹提取特定文件名的实例
批量处理文件时,常需要先遍历某个路径提取特定条件的文件名。这篇写一个暴力遍历但很简洁的方法,真的非常简洁但是非常暴力。
例子目标是:获得存放遥感数据的文件夹下文件夹名以“_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 递归遍历文件夹,并打印满足条件的文件路径实例
- python遍历一个目录,输出所有的文件名的实例
- Python3.遍历某路径提取特定文件名
- python遍历文件夹并删除特定格式文件的示例
- 人生第一份python脚本 ---- 遍历文件夹中文件,删除特定文件中的一行代码
- windows下用c++和python遍历目录下的文件夹并删除所有文件名为xx的文件
- 用Python提取文件夹下的特定扩展名的文件
- python程序2(递归查找某一个文件夹下所有的文件是否含有某个特定的字符串,并打印该文件名)
- python高效过滤出文件夹下指定文件名结尾的文件实例
- python 遍历文件夹读取文件名
- python写的遍历文件夹找寻特定文本的脚本
- 对Python 文件夹遍历和文件查找的实例讲解
- python遍历文件夹并删除特定格式文件的示例
- python 遍历文件夹下的文件
- BAT 批量提取文件夹内文件名
- python实现的二叉树定义与遍历算法实例
- 批量提取某一文件夹下的所有文件名
- Java list 文件夹中的所有文件名以及找出匹配特定pattern的文件名
- python文件操作之目录遍历实例分析