python使用技巧-查找文件

python使用技巧-查找文件

标准库的fnmatch库专门用来进行文件名匹配,支持使用通配符进行字符串匹配。

1、fnmatch:判断文件名是否符合特定的模式;

2、fnmatchcase:判断文件名是否符合特定的模式,不区分大小写;

3、filter:返回输入列表中,符合特定模式的文件名列表;

4、translate:将通配符模式转换成正则表达式。  

fnmatchcase函数与fnmatch函数几乎一样,只是在匹配文件名时会忽略文件名中字母的大小写。  

filter函数与fnmatch函数比较类似,区别在于fnmatch每次对一个文件名进行匹配判断,filter函数每次对一组文件名进行匹配判断。filter 函数接受文件名列表为第一个参数,文件名模式为第二个参数,然后以列表的形式返回输入列表中所有符合模式的文件名。  

import os,fnmatch names = os.listdir('.') for name in names:     if fnmatch.fnmatch(name,'*.xlsx'):         print(name)     if fnmatch.fnmatch(name,'[a-z]*'):         print(name) print(fnmatch.filter(names,"[a-z]*.xlsx"))

目前,我们要获取特定类型的文件列表,都是先通过os.listdir获取文件列表,然后通过使用fnmatch进行文件名模式匹配进行过滤。而在Python中还有更加简单的方式,即使用标准库的glob库。glob的作用相当于os.listdir加上fnmatch。使用glob以后,不需要调用os.listdir获取文件列表,直接通过模式匹配即可。

import glob print(glob.glob('*.xlsx')) print(glob.glob('[a-z]*'))

前面的例子都是查找某一个目录下的文件并通过模式匹配去选择自己需要的文件类型。在实际工作过程中,更有可能遇到的是查找某个目录及其子目录下的所有文件。例如查找某个目录及其子目录下的图片。可以使用os模块的walk函数。walk函数遍历某个目录及其子目录,对于每一个目录,walk返回一个三元组(dirpath, dirnames,filenames)。其中dirpath保存的是当前目录,dirnames是当前目录下的子目录列表,filenames是当前目录下的文件列表。  

import os,fnmatch images = ['*.webp','*.webp','*.webp','*.tif','*.tiff'] matches = [] for dirpath,dirnames,filenames in os.walk(os.path.expanduser(r"D:/test")):     for image in images:         for filename in fnmatch.filter(filenames,image):             matches.append(os.path.join(dirpath,filename)) print(matches)

在遍历目录及其子目录时,如果想要忽略掉某一个子目录,可以直接修改三元组中的dirnames,即从dirnames列表中移除需要忽略掉的目录。

if 'extest' in dirnames:       dirnames.remove('extest')

到此这篇关于python使用技巧-查找文件 的文章就介绍到这了,更多相关python查找文件 内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    excel怎么用乘法函数

    excel怎么用乘法函数,乘法,函数,哪个,excel乘法函数怎么用?1、首先用鼠标选中要计算的单元格。2、然后选中单元格后点击左上方工具栏的fx公

    excel中乘法函数是什么?

    excel中乘法函数是什么?,乘法,函数,什么,打开表格,在C1单元格中输入“=A1*B1”乘法公式。以此类推到多个单元。1、A1*B1=C1的Excel乘法公式

    2008桌面趋势预测:新模式即将问世

    2008桌面趋势预测:新模式即将问世,,在桌面PC市场的2007,双核心普及之后,19英寸宽屏幕,1GB内存,和数字家庭的逐渐成熟,现有的产品线,满足市场需求,

    标准差excel用什么函数?

    标准差excel用什么函数?,函数,标准,什么,在数据单元格的下方输入l标准差公式函数公式“=STDEVPA(C2:C6)”。按下回车,求出标准公差值。详细

    你必须了解的游戏的创业模式

    你必须了解的游戏的创业模式,,当创业和爱好相结合,成功率很高。传统业务相对压抑沉闷,游戏业务是迷人的,充满激情和兴奋。这就是为什么现在很

    无线模式设置|无线设置模式选哪个

    无线模式设置|无线设置模式选哪个,,无线设置模式选哪个建议不要设置,除非桥接时设置固定频道。平时选择自动为好。无线设置模式选哪个最好