目錄
獲取特定擴展名的所有文件
獲取特定目錄下的所有文件
遞歸獲取所有文件
轉義特殊字符
iglob
glob 是 Python 中用于文件模式匹配的一個模塊。它使用 Unix shell-style 的通配符來進行匹配,并返回所有匹配的文件路徑列表。
下面是一些 glob 的基本用法:
獲取特定擴展名的所有文件
如果你想獲取當前目錄下所有的 .txt 文件,可以使用:
import glob
txt_files = glob.glob('*.txt')
print(txt_files)
獲取特定目錄下的所有文件
如果你想獲取 data 目錄下所有的文件,可以使用:
import glob
all_files = glob.glob('./*')
print(all_files)
遞歸獲取所有文件
使用?**?可以遞歸地匹配所有子目錄中的文件。例如,獲取 data 目錄及其所有子目錄下的 .txt 文件:
import glob
txt_files_recursive = glob.glob('data/**/*.txt', recursive=True)
注意:recursive=True 參數確保模式會遞歸地匹配子目錄。這在 glob 的某些版本中可能是必需的。
轉義特殊字符
如果你需要匹配的文件名包含特殊字符(如?[、]、*、? 等),你可以使用 glob.escape 來轉義這些字符:
import glob
escaped_pattern = glob.escape('my[special]file*')
matched_files = glob.glob(escaped_pattern)
iglob
除了 glob 函數外,glob 模塊還提供了一個 iglob 函數,它是一個迭代器版本的 glob。當你處理大量文件時,使用 iglob 可以節省內存,因為它不會一次性加載所有匹配的文件路徑,而是每次迭代時加載一個。
import glob
for file in glob.iglob('*.txt'):
print(file)