Seite 1 von 1

Zahlen aus String auslesen

Verfasst: Dienstag 2. November 2010, 21:39
von jan_schmidt
Hallo,

ich habe die folgenden Daten:

Code: Alles auswählen

...
./couched/rererun/e0.100_f0.560
./official/rererun/e0.010_f0.640
./official/rererun/e1.000_f0.590
./automatic/rererun/rererun_e0.50_f0.590
./official/rererun/e0.100_f0.645
...
Aus diesen Strings würde ich gerne pro Linie immer die Zahl hinter dem e und die Zahl hinter dem f auslesen. Die Zahlen haben teilweise 2 oder 3 Nachkommastellen und bei einigen Daten (hier nicht gezeigt) ist das Ende der Zeile nicht identisch mit dem Ende der Zahl f.

Hat jemand eine Idee wie man das hübsch anstellen kann?


Danke! :)

Re: Zahlen aus String auslesen

Verfasst: Dienstag 2. November 2010, 21:54
von derdon

Code: Alles auswählen

>>> import re
>>> foo = '''./couched/rererun/e0.100_f0.560
... ./official/rererun/e0.010_f0.640
... ./official/rererun/e1.000_f0.590
... ./automatic/rererun/rererun_e0.50_f0.590
... ./official/rererun/e0.100_f0.645'''
>>> [map(float, re.search(r'e(\d+\.\d+)_f(\d+.\d+)', line.split('/')[-1]).groups()) for line in foo.splitlines()]
[[0.1, 0.56], [0.01, 0.64], [1.0, 0.59], [0.5, 0.59], [0.1, 0.645]]
Man könnte es natürlich auch leserlich machen. Und bestimmt auch insgesamt eleganter :P