Как обработать список?

Здраствуйте!
Подскажите, пожалуйста, как можно обработать список:
1. Парсю логи с сайта (в виде файлов) admin_20201027110051.log - админ лог от 2020.10.27 11:00:51 .
2. Формирую список файлов
spoiler
  • admin_20201027110051.log
  • admin_20201027150040.log
  • admin_20201028000025.log
  • chat_20201027110051.log
  • chat_20201027150040.log
  • chat_20201028000025.log
  • login_20201027110051.log
  • login_20201027150040.log
  • login_20201028000025.log

3. Обрабатываю информацию в файлах.

Если добавляется новый файл в логах (в конец списка), старый (самый первый из списка) пропадает, как добавить и убрать из списка эти элементы?
Появляются сразу несколько типов логов и "уходят из списка" тоже.
spoiler
  • -admin_20201027110051.log
  • -chat_20201027110051.log
  • -login_20201027110051.log
  • +admin_20201028060025.log
  • +chat_20201028030025.log
  • +login_20201028030025.log

часть кода:
raw_response = session2.get(URL_LOGS, headers=headers, timeout=20)
response = raw_response.text                              
html = BeautifulSoup(response, 'html.parser')
select = html.find('div', {'class': 'wrapper logs'})
loglist = select['data-logs']                                
logs = json.loads(loglist)
logsdata = {}
logsdata['login'] = []#список файлов login logs
logsdata['chat'] = [] #список файлов chat logs                       
logsdata['admin'] = []#список файлов admin logs  
for i in range(len(logs)):
      getid = logs["file_" + str(i + 1)]                                        
      id = (getid[int(getid.find('Logs')) + 5:])
      type = id.split('_')[0]#определяю тип лога (chat, login, admin)
      date_f = id.split('_')[1][:-4]#определяю дату лога


вот тут и "загвоздка"
Если появляется новый файл лога получаю ошибку: Error: list index out of range
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Используйте collections.deque параметром maxlen как очередь с вытеснением.
При если файла нет в списке, доавляйте его, а лишний будет вытеснен.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы