python标准库之glob介绍

glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。

用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:””, “?”, “[]”。””匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定范围内的字符,如:[0-9]匹配数字。

1、通配符

星号(*)匹配零个或多个字符

import glob
for name in glob.glob('dir/*'):
    print (name)
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir

列出子目录中的文件,必须在模式中包括子目录名:

import glob

#用子目录查询文件
print ('Named explicitly:')
for name in glob.glob('dir/subdir/*'):
    print ('\t', name)
#用通配符* 代替子目录名
print ('Named with wildcard:')
for name in glob.glob('dir/*/*'):
    print ('\t', name)
Named explicitly:
        dir/subdir/subfile.txt
Named with wildcard:
        dir/subdir/subfile.txt

2、单个字符通配符

用问号(?)匹配任何单个的字符。

import glob

for name in glob.glob('dir/file?.txt'):
    print (name)
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt

3、字符范围

当需要匹配一个特定的字符,可以使用一个范围

import glob
for name in glob.glob('dir/*[0-9].*'):
    print (name)
dir/file1.txt
dir/file2.txt
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python标准库中的glob模块提供了一种在文件系统中查找符合特定模式的文件路径的方法。它为使用通配符模式匹配文件路径提供了一种简单和方便的方法。使用glob模块,您可以通过使用通配符字符(例如*和?)来查找与特定模式匹配的文件路径。 以下是一些常用的glob模块函数: 1. glob.glob(pattern):返回与指定模式匹配的所有路径名列表。 2. glob.iglob(pattern):返回一个生成器,可以逐个返回符合指定模式的文件路径名。 3. glob.has_magic(pattern):如果指定的模式包含特殊字符(例如 * 或 ?),则返回 True。 以下是一些示例: ```python import glob # 返回所有以.py结尾的文件 py_files = glob.glob('*.py') print(py_files) # 返回所有以test开头的.py文件 test_py_files = glob.glob('test*.py') print(test_py_files) # 返回所有以.py结尾的文件的生成器 py_files_generator = glob.iglob('*.py') for file in py_files_generator: print(file) # 检查指定模式是否包含特殊字符 pattern = '*.py' if glob.has_magic(pattern): print(f'{pattern} contains magic characters') else: print(f'{pattern} does not contain magic characters') ``` 输出: ``` ['file1.py', 'file2.py', 'file3.py'] ['test_file1.py', 'test_file2.py'] file1.py file2.py file3.py *.py contains magic characters ``` 在上面的示例中,我们首先使用`glob.glob()`函数返回所有以.py结尾的文件的列表。然后,我们使用`glob.glob()`函数返回所有以test开头的.py文件的列表。接下来,我们使用`glob.iglob()`函数返回以.py结尾的文件的生成器,并使用循环逐个打印每个文件名。最后,我们使用`glob.has_magic()`函数检查指定模式是否包含特殊字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值