Я хочу, чтобы искать файлы VSD.Br.XX.O.MR_T1.[some varying number].*
в папках, вложенных HGG_LGG.For пример поиска для VSD.Br.XX.O.MR_T1.25987.mha
в папках, вложенных HGG_LGG.I могли бы просто использовать VSD.Br.XX.O.MR_T1.*
для это проблема, но есть файлы вроде 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))
Попробуйте с модулем повторной. 'для имени файла в [f для f в именах файлов, если re.match (r'VSD.Br.XX.O.MR_T1 \\ .. * ', имена файлов)]' – MYGz
имена файлов - это список. Так используя тип re.match throws ошибка. –
Проверьте сейчас. Я имел в виду. 're.match (r'VSD.Br.XX.O.MR_T1 \ .. * ', f)'. 'fnmatch()' не будет выполнять регулярное выражение, оно ограничивает использование подстановочных знаков. – MYGz