2011-01-10 36 views
0

嘿。 我使用glob.glob函數來獲取我提供的路徑上的所有.txt文件的列表。 正則表達式我提供的功能爲C:\build\*.txt,但它僅適用於根目錄,並且我想查找c:\ build \中的所有文本文件,例如c:\build\files\ha.txt如何使用正則表達式查找所有文本文件?

這怎麼可能? 謝謝。

+0

[使用Glob()在Python中遞歸查找文件的可能的重複?](http://stackoverflow.com/questions/2186525/use-a-glob-to-find-files-recursively-in-python ) – marcog 2011-01-10 15:03:41

回答

5

注意glob.glob將接受UNIX shell通配符,而不是正則表達式對象(見documentation)。

您可以完成使用os.walk從所有子目錄獲取所有.txt文件的壯舉。給你這樣一個列表的方法可以是這樣的:

def get_all_txts_on_dir(path): 
    import os 
    ret = [] 
    for root, dir, files in os.walk(path): 
     for name in files: 
      if name.endswith('.txt'): 
       ret.append(name) 
    return ret 
2

\.txt$

$錨字符串

\.結束逃脫文字.

+0

你打敗了我。 +1 – Anders 2011-01-10 15:03:46

+0

-1`glob`不需要正則表達式。 – marcog 2011-01-10 15:04:15

0

glob不使用正則表達式,它有一個更簡單的規則。

另一種方法是使用os.walk()並使用正則表達式自己執行標題匹配。

相關問題