Я новичок в регулярных выражениях. Я пытаюсь извлечь данные из файлов журнала, и в каждом файле есть такой текст:
crt - 00:00:00 up 200 days, 23:35, 0 users, load average: 0.04, 0.05, 0.02
Tasks: 300 total, 2 running, 298 sleeping, 0 stopped, 0 zombie
Cpu(s): 12.0%us, 2.5%sy, 0.0%ni, 89.2%id, 0.0%hi, 0.1%si, 0.0%st
Mem: 123456K total, 1234567k used, 989991k free, 11156793k buffers
Swap: 456K total, 30897564k used, 785431k free, 23445897k cached
PID User Pr NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
Я извлекаю только значения di git до слова cached
. Для этого я создаю разные шаблоны для каждого di git, а затем извлекаю значения в список, используя finditer
. Мой код до сих пор:
[x.group()for x in re.finditer(r"(\d{2}:\d{2}:\d{2})|(\d+\.\d+?)%id"), text]
Это фрагмент регулярного выражения, в котором я должен указать шаблон для каждой строки суффикса и префикса di git. Есть ли более эффективный способ вывода результатов?
desired_values=[00:00:00, 200, 23:35, 0, 0.04, 0.05, 0.02 ,
300, 2, 298, 0, 0,
12.0, 2.5, 0.0, 89.2, 0.0, 0.1, 0.0,
123456, 1234567, 989991, 11156793,
9234456, 30897564, 785431, 23445897]
These values then i insert in database, that's why they should be in list.