Format - reguläre Ausdrücke
Verfasst: Dienstag 12. April 2011, 14:33
Hallo,
ich habe eine Datendatei, die wie folgt aussieht. Es gibt 5 Parameter, die jeweils mehrere Iterationen haben (zwischen 1 und 14).
Parameter:
1: -0.1136526E+00
2: 0.1967943E-01
3: 0.1016349E+01
4: 0.1473191E+01
5: 0.1121686E+01
*******************************************************************************
Parameter:
1: -0.1036413E+00
2: 0.1968289E-01
3: 0.1015857E+01
4: 0.1469624E+01
5: 0.1119795E+01
*******************************************************************************
Parameter:
1: 0.8895733E+00
2: 0.1999193E-01
3: 0.9663719E+00
4: 0.1117563E+01
5: 0.9311053E+00
*******************************************************************************
Da ich z.B. Parameter1 gegen Parameter2 (eigentlich jeden gegen jeden) in allen Iterationen plotten will,
sollen die schön untereinander in eine Datei geschrieben werden, am besten durch Leerzeichen getrennt.
Also schön wäre so ein Format (Kopfzeile und 1.Spalte dienen nur zur Veranschaulichung):
p1 p2 p2 p4 p5
i1 -0.1136526E+00 0.1967943E-01 ...
i2 -0.1036413E+00 0.1968289E-01
i3 0.8895733E+00 0.1999193E-01
i4 ... ...
i5
...
Mein Ansatz war folgender:
Als Ergebnis erhalte ich folgendes Format (Tupel in Liste), was mir aber nicht weiterhilft.
[('-0.1136526E+00', '0.1967943E-01', '0.1016349E+01', '0.1473191E+01', '0.1121686E+01'), ('-0.1036413E+00', '0.1968289E-01', ... ')]
Wie kann ich denn anders an die Sache rangehen, bzw. was kann ich da noch anders machen?
ich habe eine Datendatei, die wie folgt aussieht. Es gibt 5 Parameter, die jeweils mehrere Iterationen haben (zwischen 1 und 14).
Parameter:
1: -0.1136526E+00
2: 0.1967943E-01
3: 0.1016349E+01
4: 0.1473191E+01
5: 0.1121686E+01
*******************************************************************************
Parameter:
1: -0.1036413E+00
2: 0.1968289E-01
3: 0.1015857E+01
4: 0.1469624E+01
5: 0.1119795E+01
*******************************************************************************
Parameter:
1: 0.8895733E+00
2: 0.1999193E-01
3: 0.9663719E+00
4: 0.1117563E+01
5: 0.9311053E+00
*******************************************************************************
Da ich z.B. Parameter1 gegen Parameter2 (eigentlich jeden gegen jeden) in allen Iterationen plotten will,
sollen die schön untereinander in eine Datei geschrieben werden, am besten durch Leerzeichen getrennt.
Also schön wäre so ein Format (Kopfzeile und 1.Spalte dienen nur zur Veranschaulichung):
p1 p2 p2 p4 p5
i1 -0.1136526E+00 0.1967943E-01 ...
i2 -0.1036413E+00 0.1968289E-01
i3 0.8895733E+00 0.1999193E-01
i4 ... ...
i5
...
Mein Ansatz war folgender:
Code: Alles auswählen
par = (r'Parameter:\s*1:\s*(-?\d*\.?\d*[E]?[+-]?\d*)\s*2:\s*(-?\d*\.?\d*[E]?[+-]?\d*)\s*3:\s*(-?\d*\.?\d*[E]?[+-]?\d*)\s*4:\s*(-?\d*\.?\d*[E]?[+-]?\d*)\s*5:\s*(-?\d*\.?\d*[E]?[+-]?\d*)')
parameter_iteration = re.findall(par, text)
with open ( wegdatei , 'a') as datei:
datei.write("%s "%(parameter_iteration))
datei.write("\n")
[('-0.1136526E+00', '0.1967943E-01', '0.1016349E+01', '0.1473191E+01', '0.1121686E+01'), ('-0.1036413E+00', '0.1968289E-01', ... ')]
Wie kann ich denn anders an die Sache rangehen, bzw. was kann ich da noch anders machen?