Ich wende mich an euch in der Hoffnung, dass die Community hier mit ihrer Phyton-Kompetenz mir bei meinem Problem weiterhelfen kann. Ich selbst besitze nur (mangelhafte :K ) rudimentäre Kenntnisse in Java (ich komme eigentlich aus dem Bereich des Maschinenbaus) und bin bei meinem Projekt auf Python angewiesen. Bisher habe ich versucht mit Tutorials und Lesen von einigen Foreneinträgen durch Trial&Error mich meinem Ziel anzunähern, jedoch ohne Erfolg bisher.
Ziel ist es einen Quellcode in Phyton zu verfassen, der in den Quelltext der FE-Simulation gezielt in eine Zeile eingreift, um die Parameter durch die Parameter-Zeile aus einer anderen „Hilfsdatei“ zu ersetzen. Dieser Vorgang sollte mehrfach wiederholt werden. Ich schreibe mal hier auf wie mich das vorgestellt habe:
I. FE-Simulation wird zum Zeitpunkt t beendet
II. Python-Quellcode „greift“ ein
1. Öffne Datei „FE-Simulation.k“
2. Öffne Datei „Hilfsdatei.txt“
3. Suche Zeile X in „Hilfsdatei.txt“
4. Ersetze Zeile Y in „FE-Simulation.k“ durch Zeile X aus „Hilfsdatei.txt“ - Bei dem Inhalt der Zeile handelt es sich um Fließkommazahlen, die so wie sie in der Hilfsdatei.txt stehen (inkl. Leerzeichen) übermittelt werden müssen. Z.B.:
Zeile X: " 0.100000 0.000 0.000 0.000 0.000 0 0.0001.0000E+20"
Zeile Y: " 0.200000 0.000 0.000 0.000 0.000 0 0.0001.0000E+20"
III. FE-Simulation startet mit den substituierten Parametern zum Zeitpunkt t erneut
IV. FE-Simulation endet mit den substituierten Parametern zum Zeitpunkt t+1
1. Suche Zeile X+1 in „Hilfsdatei.txt“
2. Ersetze Zeile Y in „FE-Simulation.k“ durch Zeile X+1 aus „Hilfsdatei.txt“
V. FE-Simulation startet mit den substituierten Parametern zum Zeitpunkt t+1 erneut
VI. FE-Simulation endet mit den substituierten Parametern zum Zeitpunkt t+2
VII. Das Substituieren der Zeilen geht so lange bis alle Zeilen aus der „Hilfsdatei.txt“ nacheinander ersetzt wurden und die Simulation beendet ist
1. Abbruchkriterium für Substitution erreicht
2. Schließe Datei „Hilfsdatei.txt“
3. Schließe Datei „FE-Simulation.k“
Ich selbst habe bisher nur ein Fragment geschrieben, welches sich nur die auf das Suchen einer bestimmten Zeichenkette in der „FE-Simulation.k“ und Ersetzen dieser durch eine andere festgelegte Zeichenkette konzentrieren soll. Leider funktioniert das gar nicht.
Weiterhin frage ich mich wie ich diese iterative Substitution implementieren soll. Meine Überlegung basiert auf einer If_else if_else-Abfrage, habe jedoch bisher keinen Ansatz wie die einzelnen (Abruch-) Kriterien lauten könnten.
Ich wäre äußerst dankbar, falls jemand mir konkret weiterhelfen könnte oder mich auf Threads verweist, die ähnliche Probleme behandeln. Hier mein bisheriges Textfragment:
Code: Alles auswählen
import fileinput, sys
fobj_in = open("FE-Simulation.k", "r")
search_text = " 0.100000 0.000 0.000 0.000 0.000 0 0.0001.0000E+20"
replace_text = " 0.200000 0.000 0.000 0.000 0.000 0 0.0001.0000E+20"
for line in fileinput.input("FE-Simulation.k",inplace=504): // 504 ist die Zeile in der die Substitution erfolgen soll
line = line.replace(search_text, replace_text)
sys.stdout.write(line)
fobj.close()