Вы можете разделить ваш текст с помощью re.split
. Например, вы можете разделить каждый пробел, за которым следует «u1»:
import re
from pprint import pprint
text = 'u1 @ t=0, K=3.1416, gamma=0.1, A=-0.1 u1 @ t=0.01, K=3.1416, gamma=0.1, A=-0.1 u1 @ t=0.02, K=3.1416, gamma=0.1, A=-0.1 u1 @ t=0.03, K=3.1416, gamma=0.1, A=-0.1'
lines = re.split(r'\s+(?=u1)', text)
pprint(lines)
Вы получаете:
['u1 @ t=0, K=3.1416, gamma=0.1, A=-0.1',
'u1 @ t=0.01, K=3.1416, gamma=0.1, A=-0.1',
'u1 @ t=0.02, K=3.1416, gamma=0.1, A=-0.1',
'u1 @ t=0.03, K=3.1416, gamma=0.1, A=-0.1']
Затем можно проанализировать каждую строку этого результата, чтобы извлечь атрибуты:
for line in lines:
attrs = {}
for value in line[5:].split(", "):
k, v = value.split("=")
attrs[k] = float(v)
print(attrs)
Вы получаете;
{'t': 0.0, 'K': 3.1416, 'gamma': 0.1, 'A': -0.1}
{'t': 0.01, 'K': 3.1416, 'gamma': 0.1, 'A': -0.1}
{'t': 0.02, 'K': 3.1416, 'gamma': 0.1, 'A': -0.1}
{'t': 0.03, 'K': 3.1416, 'gamma': 0.1, 'A': -0.1}