[英]glob.glob from multiple paths
我有以下代碼
os.chdir("X:\data1")
for file in glob.glob("*.pdf"):
在X:\data1\
目錄中查找所有.pdf
文件
我還想在Y:\data2\
目錄中找到所有.txt
文件
我在源代碼的多個地方都有這個片段,所以我只想做一點改變。
這樣的事情會做嗎?
import os
import glob
def ignore_case(pattern):
return ''.join((f'[{c.lower()}{c.upper()}]' if c.isalpha() else c for c in pattern))
def multi_glob(patterns):
for path, pattern in patterns:
yield from glob.iglob(os.path.join(path, ignore_case(pattern)))
list(multi_glob((("X:\data1", "*.pdf"), ("Y:\data2", "*.txt"))))
本質上,而不是os.chdir(path); glob.glob(pattern)
os.chdir(path); glob.glob(pattern)
你可以做glob.glob(os.path.join(path, pattern))
。 如果您希望這種情況發生在多個路徑/模式組合中,您可以通過它們進行循環。 最后,要獲得不區分大小寫的模式,只需將模式的每個字母c
替換為[cC]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.