Code: Alles auswählen
with open(datei, "r") as g:
liste2 = list(g)
g.close()
Code: Alles auswählen
alles = ["MESH2D", "E4Q", "E3T", "ND", "E2L", "E3L", "NUM_MATERIALS_PER_ELEM", "E6T", "E8Q", "E9Q", "NS", "GM", "SI", "DY", "TU", "TD", "KEY", "PG", "PD", "BD", "BCPGC", "NUME", "BV", "BCDISP", "BEDISP", "MV", "MAT_DEF", "BEGPARAMDEF", "ENDPARAMDEF", "BEG2DMBC", "BCN", "BCS", "MAT", "END2DMBC", "MAT_VAL", "BEFONT"]
string1 = "END2DMBC"
with open('time1.txt', "w") as f:
for n in liste2:
nliste = n.split()
set1 = set(nliste)
set2 = set(alles)
set3 = set1.intersection(set2)
if len(set3) == 0:
if nliste[0] != "0" or nliste[0] != "0.0":
wert = "BCS "+"1 "+"1 "+nliste[1]+"\n"
f.write(wert)
else:
pass
f.write(string1+"\n")
f.close()
Habe wichtige Infos der Dateien mal hervorgehoben.BCS 1 1 2 1.71724100e+002
BCS 2 1 3 4.77263000e+001
XYS 1 61 "Curve"
0.0 0.0
900.0 0.0624
1800.0 0.1872
2700.0 0.3744
3600.0 0.7488
4500.0 1.248
5400.0 1.9968
...
XYS 2 61 "Curve"
0.0 0.0
900.0 0.4529
1800.0 1.3587
2700.0 2.7174
3600.0 5.4348
4500.0 9.058
5400.0 14.4928
Er soll erkennen, wenn "XYS 1" dasteht, dass es Werte für "BCS 1 1" sind und wenn "XYS 2" in der Zeile vorkommt, dass die nachfolgenden Zeilen die Werte für "BCS 2 1" beinhalten. So soll er es letztendlich in die neue Dateien schreiben (time1.txt für BCS 1 1 und time2.txt für BCS 2 1 usw.), die dann für die Weiterverarbeitung genutzt werden.
Würde mich freuen, wenn ihr mir ein paar Anregungen /Tipps dazu geben könntet. Die "while True if bedingung: break" Variante funktioniert ja nicht, wegen dem zeilenweisen schreiben (for n in liste2).
Danke schonmal