0
我想在HGG_LGG的子文件夾中搜索文件VSD.Br.XX.O.MR_T1.[some varying number].*
。例如,在HGG_LGG的子文件夾中搜索VSD.Br.XX.O.MR_T1.25987.mha
。我可以簡單地使用3210這樣做,但問題是有像VSD.Br.XX.O.MR_T1c.[some varying number] .*
我不想掃描的文件。簡而言之,我希望在T1之後包含點(。))的整個字符串(),然後在該字符串上應用通配符.*
。以下是代碼。我試圖用\\
轉義點,但沒有工作matches
仍然是空的。查找包含點和點後變化字符串的文件
import fnmatch
import os
matches = []
for root, dirnames, filenames in os.walk('/home/ms/Desktop/Testing/HGG_LGG/'):
for filename in fnmatch.filter(filenames, 'VSD.Br.XX.O.MR_T1\\..*'):
matches.append(os.path.join(root, filename))
與re模塊嘗試指出。 '如果文件名爲[f for f in filenames if re.match(r'VSD.Br.XX.O.MR_T1 \\ .. *',filenames)]' – MYGz
filenames is a list.So using re.match throws type錯誤。 –
立即檢查。我的意思是。 're.match(r'VSD.Br.XX.O.MR_T1 \ .. *',f)'。 'fnmatch()'不會執行正則表達式匹配,它具有有限的通配符用法。 – MYGz