2017-04-12 66 views
0

Python的glob模塊匹配與glob表達式匹配的所有文件和目錄。根據文檔,它通過使用os.listdir()fnmatch.fnmatch()在內部實現。python的glob模塊是否有一個等效的正則表達式?

是否有一個與正則表達式匹配而不是使用globs的開箱即用模塊或函數?

+0

當然,蟒蛇重新模糊。 – valex

+1

這是部分正確的,但是你必須用'os.walk'構建一個路徑名列表(警告:它不會返回列表),然後在每個項目上重新匹配' –

+0

@KaeptmBlaubaer我不知何故錯過了操作系統。 walk()方法。 os.walk()與re.match一定會做我想做的事情,儘管它可能效率低下,因爲所有文件和子目錄都將被遍歷,而不管匹配,而不是僅限於部分匹配正則表達式的子目錄。我期望這是爲什麼glob使用os.listdir()而不是使用os.walk()的原因。 – ranban282

回答

2

不是一個模塊,但有可用的腳本,它的文件使用正則表達式重命名,here.

顯然,這代碼做配套基礎上,正則表達式。您可以聯繫作者,瞭解關於如何爲代碼獲取僅匹配界面,或者只是自己破解它。

+0

謝謝,這幾乎可行。我想測試用於掃描目錄的代碼,並對子目錄進行部分(前綴)匹配。 Kaeptm Blaubaer使用os.walk()和re.match()的方法也可以工作,但可能效率不高。 – ranban282

相關問題