本篇文章介紹Python中的glob模塊的基本使用。glob模塊可以按指定路徑得到所有符合條件的文件的完整路徑。
glob的使用體驗類似于windows系統中常用的搜索功能。使用通配符進行搜索
簡介
glob是Python中最簡單的模塊之一,功能很簡單,類似于windows中的查找文件。使用如下通配符進行操作:
-
*
星號:表示匹配0個或多個字符 -
?
問號:表示匹配單個字符 -
[]
中括號: 匹配指定的范圍。如[0-9]
glob.glob
>>> 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用來獲取一個可迭代對象,再對其遍歷。數據量非常大的時候比較適用。
>>> 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返回的是一個可迭代對象,可以節省內存。