У меня есть следующие имена файлов в списке (filelist):
filelist = ['ABC.dat',
'ABC3.dat',
'ABC10.dat',
'ABC956.dat',
'XYZ_PQR_JKL.dat',
'XYZ_PQR_JKL_1.dat',
'XYZ_PQR3_JKL.dat',
'XYZ_PQR3_JKL_1.dat',
'XYZ_PQR10_JKL.dat',
'XYZ_PQR10_JKL_1.dat',
'XYZ_PQR956_JKL.dat',
'XYZ_PQR956_JKL_1.dat']
unique_filelist = ['ABC.dat',
'XYZ_PQR_JKL.dat',
'XYZ_PQR_JKL_1.dat',]
В основном набор файлов генерируется в разное время, то есть 3, 10, 956 в данном случае, что я знаю заранее,Мне нужно сгруппировать файлы на основе этого времени (набор файлов), то есть следующий вложенный список должен быть создан в качестве вывода:
[['ABC.dat', 'ABC3.dat', 'ABC10.dat', 'ABC956.dat'],
['XYZ_PQR_JKL.dat', 'XYZ_PQR3_JKL.dat', 'XYZ_PQR10_JKL.dat', 'XYZ_PQR956_JKL.dat'],
['XYZ_PQR_JKL_1.dat', 'XYZ_PQR3_JKL_1.dat', 'XYZ_PQR10_JKL_1.dat', 'XYZ_PQR956_JKL_1.dat']]
Я пытаюсь сравнить список файлов с набором файлов и unique_filelist, и если они соответствуют добавитьк списку.Ниже приведен MWE, который не соответствует назначению:
MWE
import re
filelist = ['ABC.dat',
'ABC3.dat',
'ABC10.dat',
'ABC956.dat',
'XYZ_PQR_JKL.dat',
'XYZ_PQR_JKL_1.dat',
'XYZ_PQR3_JKL.dat',
'XYZ_PQR3_JKL_1.dat',
'XYZ_PQR10_JKL.dat',
'XYZ_PQR10_JKL_1.dat',
'XYZ_PQR956_JKL.dat',
'XYZ_PQR956_JKL_1.dat']
fileset = [3, 10, 956]
unique_filelist = ['ABC.dat',
'XYZ_PQR_JKL.dat',
'XYZ_PQR_JKL_1.dat',]
for i in filelist:
for j in fileset:
search_go_to = set([unique_filelist, str(j)])
m = ' .*? '.join(x for x in search_go_to)
matches = [s for s in filelist if re.search(m, s)]
print (matches)
Как сравнить два списка с третьим списком и, если существует группа соответствияих во вложенный список?