脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python使用技巧-查找文件

python使用技巧-查找文件

2022-10-09 12:51zzxiaoma Python

这篇文章主要分享的是python使用技巧查找文件,下面我们就来介绍针对python查找文件的相关内容,需要的小伙伴可以参考一下

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

  • 1、fnmatch:判断文件名是否符合特定的模式;
  • 2、fnmatchcase:判断文件名是否符合特定的模式,不区分大小写;
  • 3、filter:返回输入列表中,符合特定模式的文件名列表;
  • 4、translate:将通配符模式转换成正则表达式。  

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

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

?
1
2
3
4
5
6
7
8
9
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获取文件列表,直接通过模式匹配即可。

?
1
2
3
4
import glob
 
print(glob.glob('*.xlsx'))
print(glob.glob('[a-z]*'))

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

?
1
2
3
4
5
6
7
8
9
import os,fnmatch
 
images = ['*.jpg','*.jpeg','*.png','*.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列表中移除需要忽略掉的目录。

?
1
2
if 'extest' in dirnames:  
    dirnames.remove('extest')

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

原文链接:https://blog.51cto.com/u_3764469/5020275

延伸 · 阅读

精彩推荐
  • PythonPython Numpy 数组的初始化和基本操作

    Python Numpy 数组的初始化和基本操作

    Python 是一种高级的,动态的,多泛型的编程语言。接下来通过本文给大家介绍Python Numpy 数组的初始化和基本操作,感兴趣的朋友一起看看吧...

    Baoli100819102021-01-21
  • PythonPython演化计算基准函数详解

    Python演化计算基准函数详解

    这篇文章主要介绍了Python演化计算基准函数,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧,希望能够给你带来帮助...

    Robin-hlt10032022-02-17
  • Pythonpython交互式图形编程实例(三)

    python交互式图形编程实例(三)

    这篇文章主要为大家详细介绍了python交互式图形编程实例第三篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    hayden__wang2752020-12-18
  • PythonPandas常用的读取和保存数据的函数使用(csv,mysql,json,excel)

    Pandas常用的读取和保存数据的函数使用(csv,mysql,json,excel)

    本文主要介绍了Pandas常用的读取和保存数据的函数使用,主要包括csv,mysql,json,excel这几种方式,具有一定的参考价值,感兴趣的可以了解一下...

    夏悠11312022-08-31
  • PythonPython爬取读者并制作成PDF

    Python爬取读者并制作成PDF

    本文是在学习了beautifulsoup之后,制作的一个爬取读者杂志并使用reportlab制作成pdf的python小工具,咱也文艺一下:),分享给大家,有需要的小伙伴参考下吧...

    hebedich6952019-11-26
  • Python用python对excel查重

    用python对excel查重

    这篇文章主要介绍了用python对excel查重的方法,帮助大家更好的利用python处理excel表格,感兴趣的朋友可以了解下...

    咸鱼Doyoung10322021-08-10
  • PythonPython中logging日志记录到文件及自动分割的操作代码

    Python中logging日志记录到文件及自动分割的操作代码

    这篇文章主要介绍了Python中logging日志记录到文件及自动分割,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以...

    行星带6612020-08-05
  • PythonPython中22个万用公式的小结

    Python中22个万用公式的小结

    在大家的日常python程序的编写过程中,都会有自己解决某个问题的解决办法,或者是在程序的调试过程中,用来帮助调试的程序公式,本文总结了22个万用...

    J519LEE7222021-12-14