glob模塊

功能描述:glob模塊可以使用Unix shell風格的通配符匹配符合特定格式的文件和文件夾,跟windows的文件搜索功能差不多。glob模塊並非調用一個子shell實現搜索功能,而是在內部調用了os.listdir()和fnmatch.fnmatch()

glob模塊共包含以下3個函數:

  • glob(pathname, recursive=False)
    第一個參數pathname爲需要匹配的字符串。(該參數應儘量加上r前綴,以免發生不必要的錯誤)
    第二個參數代表遞歸調用,與特殊通配符“”一同使用,默認爲False。
    返回值爲列表
    該函數返回一個符合條件的路徑的字符串列表,如果使用的是Windows系統,路徑上的“\”符號會自動加上轉義符號變爲“\”(方便使用)
    在3.5版本之後,glob函數支持一個特殊的通配符“
    ”,該通配符可以匹配指定路徑裏所有文件和目錄,包括子目錄裏的所有文件和目錄。相當於遞歸地調用了這個函數。使用這個通配符必須加上recursive=True參數。
    (在有複雜目錄結構的情況下使用該通配符可能會導致性能下降,拖累整個程序的運行,需謹慎使用!)

  • iglob(pathname, recursive=False)
    參數與glob()一致。
    返回一個迭代器,該迭代器不會同時保存所有匹配到的路徑,遍歷該迭代器的結果與使用相同參數調用glob()的返回結果一致。

  • escape(pathname)
    這個函數是在3.4版本之後纔有的,功能是忽略所有通配符。(可以用於測試某文件是否存在)
    (3.5.1版本該函數不能正常運行,升級到3.5.2之後恢復正常)

glob模塊支持的通配符:
在這裏插入圖片描述

import glob
 
listglob = []
listglob = glob.glob(r"/home/xxx/picture/*.png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0?.png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0[0,1,2].png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.glob(r"/home/xxx/picture/0[0-3].png")
listglob.sort()
print listglob
 
print '--------------------'
listglob = glob.iglob(r"/home/xxx/picture/0[a-z].png")
print listglob
for item in listglob:
    print item

在這裏插入圖片描述

import  glob,os
path="F:\\CodeFile\\my_directory"
l=[]
l=glob.glob(os.path.join(path,"*.txt"))
for i in l:
    print(i)

輸出:
F:\CodeFile\my_directory\file3 - 副本 (2).txt
F:\CodeFile\my_directory\file3 - 副本 (3).txt
F:\CodeFile\my_directory\file3 - 副本 (4).txt
F:\CodeFile\my_directory\file3 - 副本.txt
F:\CodeFile\my_directory\file3.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章