浅析python标准库中的glob

时间:2021-05-22

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

1、通配符

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

import globfor name in glob.glob('dir/*'): print (name)dir/file.txtdir/file1.txtdir/file2.txtdir/filea.txtdir/fileb.txtdir/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.txtNamed with wildcard: dir/subdir/subfile.txt

2、单个字符通配符

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

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

3、字符范围

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

import globfor name in glob.glob('dir/*[0-9].*'): print (name)dir/file1.txtdir/file2.txt

知识点补充:Python编程:glob模块进行文件名模式匹配

文件准备

$ mkdir tmp
$ cd tmp
$ touch file1.txt
$ touch file2.txt
$ touch file3.log
$ ls
file1.txt file2.txt file3.log

测试

import glob# 使用零个或多个字符通配符 * glob.glob("tmp/*.txt")Out[1]: ['file1.txt', 'file2.txt']# 使用单字符通配符 ?glob.glob("tmp/file?.txt")Out[2]: ['file1.txt', 'file2.txt']# 使用范围匹配glob.glob("tmp/file[0-9].txt")Out[3]: ['file1.txt', 'file2.txt']

总结

到此这篇关于浅析python标准库中的glob的文章就介绍到这了,更多相关python标准库 glob内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章