超级好用的Python模块——glob模块

Python
119
0
0
2024-05-20
标签   Python库

为了更加方便、快捷地查找文件/文件夹,再介绍一个超级好用的Python模块——glob模块。glob模块可以查找符合特定规则的文件/文件夹,并将搜索到的结果返回到一个列表中。该模块之所以强大的原因在于,它支持几个正则通配符,分别介绍如下:

  • *:匹配0个或多个字符
  • ?:匹配一个字符
  • []:匹指定范围内的字符,比如可用[0-9]匹配数字,用[a-z]匹配小写字母。

'*'符号表示匹配当前工作目录下的文件夹及文件名组成的列表,代码如下:

import glob
print(glob.glob('*')

>>>
['案例3', '案例4', '案例2', '自动批处理文件夹.py', '文件的自动匹配.py']

'.'符号表示我们要找到文件名称中国呢包含“."的文件,代码如下:

import glob
print(glob.glob('*.*'))

>>>
['自动批处理文件夹.py', '文件的自动匹配.py']

'*.xlsx'符号表示我们要找到以.xlsx结尾的文件,代码如下:

import glob
print(glob.glob('./案例4/*.xlsx'))

>>>
['./案例4/2020-1.xlsx', './案例4/20210303.xlsx', './案例4/20200303.xlsx', './案例4/2020-3.xlsx', './案例4/2020-2.xlsx']

'*案例*'表示我们要找到文件名称中包含“文件夹”三个字的文件。

import glob
print(glob.glob('*案例*'))

>>>
['案例3', '案例4', '案例2']

'案例?'表示我们要找以“案例”开头,并且后面紧跟一个字符的文件。

import glob
print(glob.glob('案例?'))

>>>
['案例3', '案例4', '案例2']

‘案例[2]‘表示我们要找到以“案例”开头,并且后面茎根一个字符必须是数字2。

import glob
print(glob.glob('案例[2]'))

>>>
['案例2']

除了上面提到的三个通配符,在glob模块的3.5版本中,又新增了一个通配符**,它主要与参数recursive搭配使用。参数recursive代表递归调用,其默认为False,当其值为True时,表示递归调用。两者搭配可以实现进入路径的子目录中匹配文件。

import glob
print(glob.glob('**', recursive=True))

>>>

['案例3', '案例3/xls', '案例3/xls/导出数据.xls', '案例3/txt', '案例3/txt/小说.txt', '案例3/txt/密码.txt', '案例3/xlsx', '案例3/xlsx/公司销量模拟数据1.xlsx', '案例3/xlsx/结算合计.xlsx', '案例3/xlsx/计算结果.xlsx', '案例3/xlsx/周报销售数据.xlsx', '案例3/xlsx/报送 - 副本.xlsx', '案例3/xlsx/报送.xlsx', '案例3/xlsx/第二次月考成绩.xlsx', '案例3/pdf', '案例3/pdf/求职Python开发.pdf', '案例3/pdf/个人简历.pdf', '案例3/jpg', '案例3/jpg/风景图.jpg', '案例3/pptx', '案例3/pptx/年中工作报告.pptx', '案例3/pptx/0-周报模板.务合同-3059874.docx', '案例3/docx/Python.docx', '案例3/docx/学习.docx', '案例4', '案例4/2020-1.xlsx', '案例4/图片合集', '案例4/图片合集/qrcode_for_gh_dfe1628ddbd6_430.jpg', '案例4/图片合集/0 (3).png', '案例4/图片合集/风景图.jpg', '案例4/图片合集/0 (2).png', '案例4/图片合集/qrcode_for_gh', '案例4/模板①/公司周报.ppt', '案例4/各类数据', '案例4/各类数据/公司销量模拟数据1.xlsx', '案例4/各类数据/2020-96.xlsx', '案例4/各类数据/2020-79.xlsx', '案例4/各类数据/2020-1.xlsx', '案例4/各类数据/结算合计.xlsx', '案例4/各类数据/2020-38.xlsx', '案例4/各类数据/2020-80.xlsx', '案例4/各类数据/2020-14.xlsx', '案例4/各类数据/2020-43.xlsx', '案例4/各类数据/2020-55.xlsx', '案例4/各类数据/2020-75.xlsx', '案例4/各类数据/2020-22.xlsx', '案例4/各类数据/2020-34.xlsx', '案例4/各类数据/2020-63.xlsx', '案例4/各类数据/2020-18.xlsx', '案例4/各类数据/2020-59.xlsx', '案例4/各类数据/2020-58.xlsx', '案例4/各类数据/2020-19.xlsx', '案例4/各类数据/2020-62.xlsx', '案例4/各类数据/2020-35.xlsx', '案例4/各类数据/2020-23.xlsx', '案例4/各类数据/2020-74.xlsx', '案例4/各类数据/2020-54.xlsx', '案例4/各类数据/2020-42.xlsx', '案例4/各类数据/计算结果.xlsx', '案例4/各类数据/2020-15.xlsx', '案例4/各类数据/2020-81.xlsx', '案例4/各类数据/2020-39.xlsx', '案例4/各类数据/2020-97.xlsx', '案例4/各类数据/2020-78.xlsx', '案例4/各类数据/2020-73.xlsx', '案例4/各类数据/2020-24.xlsx', '案例4/各类数据/2020-32.xlsx', '案例4/各类数据/2020-65.xl020-6.xlsx', '案例4/各类数据/2020-91.xlsx', '案例4/各类数据/2020-100.xlsx', '案例4/各类数据/周报销售数据.xlsx', '案例4/各类数据/20210101.xlsx', '案例4/各类数据/2020-48.xlsx', '案例4/各类数据/2020-64.xlsx', '案例4/各类数据/2020-33.xlsx', '案例4/各类数据/2020-25.xlsx', '案例4/各类数据/2020-72.xlsx', '案例4/各类数据/2020-67.xlsx', '案例4/各类数据/2020-88.xlsx', '案例4/各类数据/2020-30.xlsx', '案例4/各类数据/2020-9.xlsx', '案例4/各类数据/2020-26.xlsx', '案例4/各类数据/2020-71.xlsx', '案例4/各类数据/2020-51.xlsx', '案例4/各类数据/2020-47.xlsx', '案例4/各类数据/2020-10.xlsx', '案例4/各类数据/2020-84.xlsx', '案例4/各类数据/2020-5.xlsx', '案例4/各类数据/2020-92.xlsx', '案例4/各类数据/2020-93.xlsx', '案例4/各类数据/2020-4.xlsx', '案例4/各类数据/2020-85.xlsx', '案例4/各类数据/2020-11.xlsx', '案例4/各类数据/报送 - 副本.xlsx', '案例4/各类数据/2020-46.xlsx', '案例4/各类数据/2020-50.xlsx', '案例4/各类数据/2020-70.xlsx', '案例4/各类数据/2020-27.xlsx', '案例4/各类数据/2020-8.xlsx', '案例4/各类数据/2020-31.xlsx', '案例4/各类数据/2020-66.xlsx', '案例4/各类数据/2020-89.xlsx', '案例4/各类数据/报送.xlsx', '案例4/各类数据/2020-57.xlsx', '案例4/各类数据/2020-41.xlsx', '案例4/各类数据/2020-16.xlsx', '案例4/各类数据/2020-82.xlsx', '案例4/各类数据/第二次月考成绩.xlsx', '案例4/各类数据/2020-3.xlsx', '案例4/各类数据/2020-94.xlsx', '案例4/各类数据/2020-61.xlsx', '案例4/各类数据/2020-36.xlsx', '案例4/各类数据/2020-20.xlsx', '案例4/各类数据/2020-77.xlsx', '案例4/各类数据/2020-98.xlsx', '案例4/各类数据/2020-76.xlsx', '案例4/各类数据/2020-99.xlsx', '案例4/各类数据/2020-21.xlsx', '案例4/各类数据/2020-37.xlsx', '案例4/各类数据/2020-60.xlsx', '案例4/各类数据/2020-95.xlsx', '案例4/各类数据/2020-2.xlsx', '案例4/各类数据/2020-83.xlsx', '案例4/各类数据/2020-17.xlsx', '案例4/各类数据/2020-40.xlsx', '案例4/各类数据/2020-56.xlsx', '案例4/写作笔记', '案例4/写作笔记/Markdown.md', '案例4/写作笔记/文档.md', '案例4/部分文本', '案例4/部分文本/服务合同-3059875.docx', '案例4/部分文本/笔记.docx', '案例4/部分文本/服务合同-3059874.docx', '案例4/部分文本/Python.docx', '案例4/部分文本/学习.docx', '案例4/学习笔记.docx', '案例4/20210303.xlsx', '案例4/20200303.xlsx', '案例4/工作报告.pptx', '案例4/导出数据', '案例4/导出数据/20210202.xlsx', '案例4/导出数据/导出数据.xls', '案例4/格式文档', '案例4/格式文档/小说.txt', '案例4/格式文档/密码.txt', '案例4/2020-3.xlsx', '案例4/0-周报模板.pptx', '案例4/个人简历.pdf', '案例4/2020-2.xlsx', '案例2', '案例2/2020-96.xlsx', '案例2/2020-79.xlsx', '案例2/2020-1.xlsx', '案例2/2020-49.xlsx', '案例2/2020-90.xlsx', '案例2/2020-7.xlsx', '案例2/2020-28.xlsx', '案例2/2020-86.xlsx', '案例2/2020-69.xlsx', '案例2/2020-12.xlsx', '案例2/2020-45.xlsx', '案例2/2020-53.xlsx', '案sx', '案例2/2020-67.xlsx', '案例2/2020-88.xlsx', '案例2/2020-30.xlsx', '案例2/2020-9.xlsx',  '自动批处理文件夹.py', '文件的自动匹配.py']

glob模块的强大功能可以通过小蜜蜂AI的GPT获取。