本篇文章介绍Python中的glob模块的基本使用。glob模块可以按指定路径得到所有符合条件的文件的完整路径。
glob的使用体验类似于windows系统中常用的搜索功能。使用通配符进行搜索
简介
glob是Python中最简单的模块之一,功能很简单,类似于windows中的查找文件。使用如下通配符进行操作:
*
星号:表示匹配0个或多个字符
?
问号:表示匹配单个字符
[]
中括号: 匹配指定的范围。如[0-9]
glob.glob
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| >>> import glob >>> files_path = glob.glob("/tmp/npm*") >>> type(file_paths) <type 'list'> >>> for f in files_path: ... print f ... /tmp/npm-7838-2b67e940 /tmp/npm-5331-1d55c699 /tmp/npm-6600-69f3511a /tmp/npm-5116-69883a41 /tmp/npm-5009-8ef54da7 /tmp/npm-7792-fec6155a /tmp/npm-3252-71dc8e8e /tmp/npm-4344-50e90470 /tmp/npm-6387-29ec15b1 /tmp/npm-4617-fff22b70 /tmp/npm-4456-b90bb1d8 /tmp/npm-6480-cce3191b /tmp/npm-4062-60f050ce /tmp/npm-4712-1ca9017c /tmp/npm-3770-aec98483 /tmp/npm-3913-8678ef60 /tmp/npm-5235-03941a1e
|
重点看类型! list !!! 返回的是一个列表
glob.iglob
iglob用来获取一个可迭代对象,再对其遍历。数据量非常大的时候比较适用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| >>> import glob >>> files_path = glob.iglob("/tmp/npm*") >>> type(files_path) <type 'generator'> >>> for f in files_path: ... print f ... /tmp/npm-7838-2b67e940 /tmp/npm-5331-1d55c699 /tmp/npm-6600-69f3511a /tmp/npm-5116-69883a41 /tmp/npm-5009-8ef54da7 /tmp/npm-7792-fec6155a /tmp/npm-3252-71dc8e8e /tmp/npm-4344-50e90470 /tmp/npm-6387-29ec15b1 /tmp/npm-4617-fff22b70 /tmp/npm-4456-b90bb1d8 /tmp/npm-6480-cce3191b /tmp/npm-4062-60f050ce /tmp/npm-4712-1ca9017c /tmp/npm-3770-aec98483 /tmp/npm-3913-8678ef60 /tmp/npm-5235-03941a1e
|
上面的实例可以看出使用glob.iglob返回的是一个可迭代对象,可以节省内存。