import re
s = ("# control.dat\n"
"X001 A3 100.0 20.0 40.0\n"
" A5 124.0 \n"
" I3 125.0 \n"
"X002 C3 200.054 20.494 45.0\n"
" C5 122.0\n"
" K3 122.01\n"
" \n")
pattern = r"^X0\d+\s+\w+\s*(?P<PARAM_1>\d+(?:\.\d+)?)\s+(?P<PARAM_2>\d+(?:\.\d+)?)\s+(?P<PARAM_3>\d+(?:\.\d+)?)"
r = re.compile(r"^X0\d+\s+\w+\s*(?P<PARAM_1>\d+(?:\.\d+)?)\s+(?P<PARAM_2>\d+(?:\.\d+)?)\s+(?P<PARAM_3>\d+(?:\.\d+)?)", re.MULTILINE)
dict = {'PARSED': [m.groupdict() for m in r.finditer(s)]}
print(dict)
aW1wb3J0IHJlCgpzID0gKCIjIGNvbnRyb2wuZGF0XG4iCiAgICAgICAgICAgICJYMDAxICBBMyAgICAgIDEwMC4wICAgMjAuMCAgICA0MC4wXG4iCiAgICAgICAgICAgICIgICAgICBBNSAgICAgIDEyNC4wICAgXG4iCiAgICAgICAgICAgICIgICAgICBJMyAgICAgIDEyNS4wIFxuIgogICAgICAgICAgICAiWDAwMiAgQzMgICAgICAyMDAuMDU0IDIwLjQ5NCAgNDUuMFxuIgogICAgICAgICAgICAiICAgICAgQzUgICAgICAxMjIuMFxuIgogICAgICAgICAgICAiICAgICAgSzMgICAgICAxMjIuMDFcbiIKICAgICAgICAgICAgIiAgICAgICAgXG4iKQoKcGF0dGVybiA9IHIiXlgwXGQrXHMrXHcrXHMqKD9QPFBBUkFNXzE+XGQrKD86XC5cZCspPylccysoP1A8UEFSQU1fMj5cZCsoPzpcLlxkKyk/KVxzKyg/UDxQQVJBTV8zPlxkKyg/OlwuXGQrKT8pIgpyID0gcmUuY29tcGlsZShyIl5YMFxkK1xzK1x3K1xzKig/UDxQQVJBTV8xPlxkKyg/OlwuXGQrKT8pXHMrKD9QPFBBUkFNXzI+XGQrKD86XC5cZCspPylccysoP1A8UEFSQU1fMz5cZCsoPzpcLlxkKyk/KSIsIHJlLk1VTFRJTElORSkKZGljdCA9IHsnUEFSU0VEJzogW20uZ3JvdXBkaWN0KCkgZm9yIG0gaW4gci5maW5kaXRlcihzKV19CgpwcmludChkaWN0KQ==