Я также опубликую свое решение.Это более многословно, но, возможно, немного легче понять, чем понимание списка.
import os
import glob
from itertools import groupby
from operator import itemgetter
LOGS = ['LOGS\LOG_20190218_91_02.LOG',
'LOGS\LOG_20190218_91_05.LOG',
'LOGS\LOG_20190218_91_00.LOG',
'LOGS\LOG_20190218_91_22.LOG',
'LOGS\LOG_20190218_91_10.LOG',
'LOGS\LOG_20190219_56_22.LOG',
'LOGS\LOG_20190219_56_24.LOG',
'LOGS\LOG_20190219_56_25.LOG',
'LOGS\LOG_20190219_56_26.LOG',
'LOGS\LOG_20190219_56_03.LOG',
'LOGS\LOG_20190220_56_22.LOG',
'LOGS\LOG_20190220_56_07.LOG',
'LOGS\LOG_20190220_56_13.LOG',
'LOGS\LOG_20190220_56_17.LOG',
'LOGS\LOG_20190220_56_21.LOG']
dateList = []
for log in LOGS:
baseName = os.path.basename(log)
date = baseName.split('_')[1][:8]
dateList .append(date)
dateList = (set(dateList))
myDict = {}
for date in dateList:
for log in LOGS:
if date in log:
myDict.setdefault(date, [])
myDict[date].append(log)
for key, value in myDict.items():
print(key, value)
Вывод:
20190220 ['LOGS\\LOG_20190220_56_22.LOG', 'LOGS\\LOG_20190220_56_07.LOG', 'LOGS\\LOG_20190220_56_13.LOG', 'LOGS\\LOG_20190220_56_17.LOG', 'LOGS\\LOG_20190220_56_21.LOG']
20190219 ['LOGS\\LOG_20190219_56_22.LOG', 'LOGS\\LOG_20190219_56_24.LOG', 'LOGS\\LOG_20190219_56_25.LOG', 'LOGS\\LOG_20190219_56_26.LOG', 'LOGS\\LOG_20190219_56_03.LOG']
20190218 ['LOGS\\LOG_20190218_91_02.LOG', 'LOGS\\LOG_20190218_91_05.LOG', 'LOGS\\LOG_20190218_91_00.LOG', 'LOGS\\LOG_20190218_91_22.LOG', 'LOGS\\LOG_20190218_91_10.LOG']
Если вы используете print(myDict["20190220"])
...
['LOGS\\LOG_20190220_56_22.LOG', 'LOGS\\LOG_20190220_56_07.LOG', 'LOGS\\LOG_20190220_56_13.LOG', 'LOGS\\LOG_20190220_56_17.LOG', 'LOGS\\LOG_20190220_56_21.LOG']