[Python]-Konsolendaten in Textdatei speichern


BassSportler

Grünschnabel
Hallo zusammen,

ich bin gerade dabei ein Simulationsprogramm mit Hilfe eines Pythonskriptes anzusteuern. Das Skript soll eine Simulation starten und die "Messdaten" dann in eine Textdatein schreiben.
Die Messdaten liegen als 1D-Liste vor. Das Problem ist nun, dass ich es nicht schaffe diese Daten korrekt in die Datei zu schreiben. Das Programm gibt mir ca. 45000 Werte aus, aber Python schreibt nur gut die Hälfte davon in die Datei.
Hat jemand eine Idee woran das liegen kann? Bin als Python-Anfänger für jede Hilfe dankbar.

Besten Gruß

PS: Die Befehle "picw.Exec..." steuern das Simulationsprogramm. Ein beispieloutput des Skripts befindet sich in Output_x.txt und die "richtige" Ausgabe des Simulationsprogramms ist im Screenshot angehängt.
 

Anhänge

deepthroat

Erfahrenes Mitglied
Hi.

Dein Beispielprogramm ist eigentlich relativ nutzlos. Das Programm schreibt die Daten auf die Standardausgabe und nicht in eine Datei. Oder hast du das nur umgeleitet? Oder ist es das funktionierende Programm - wo ist dann das fehlerhafte?

Ansonsten, prüfe doch erstmal wieviele Elemente in data drin sind bevor du annimmst das nicht alle geschrieben werden.

Gruß
 

BassSportler

Grünschnabel
Bisher gebe ich das auf der Standardausgabe aus um direkt zu sehen was das Programm macht. Zum speichern in eine Datei nutze ich die Umleitung "> Output_x.txt".
Wenn ich mit über len(data) die Listenlänge ausgebe, gibt das Skript mal 9640, mal 1452 Werte zurück. Das Simulationsprogramm gibt mir aber 44670 Werte aus. Warum kann Python nicht alle Werte einlesen?

PS: Leider gibt es kein funktionierendes Programm.
 

deepthroat

Erfahrenes Mitglied
Bisher gebe ich das auf der Standardausgabe aus um direkt zu sehen was das Programm macht. Zum speichern in eine Datei nutze ich die Umleitung "> Output_x.txt".
Wenn ich mit über len(data) die Listenlänge ausgebe, gibt das Skript mal 9640, mal 1452 Werte zurück. Das Simulationsprogramm gibt mir aber 44670 Werte aus. Warum kann Python nicht alle Werte einlesen?
Das ist unmöglich zu sagen, ohne den Code bzw. die Doku zu sehen. pdPythonLib scheint kein verbreitetes / öffentliches Modul zu sein.

\edit: evtl. ist die Simulation einfach noch nicht durchgelaufen - du setzt doch da Parameter und die Daten werden dann erst berechnet, oder? dann probier doch mal ob sich etwas verbessert wenn du vor "data = ..." ein "time.sleep(10)" setzt...

Gruß
 
Zuletzt bearbeitet:

BassSportler

Grünschnabel
Die Biblitiothek pdPythonLib dient nur zur Kommunikation mit der Simulationssoftware. Laut Hersteller gibt es dafür wohl kein Programming guide.
Der Sleep Befehl hat leider auch nicht geholfen
 

deepthroat

Erfahrenes Mitglied
Die Biblitiothek pdPythonLib dient nur zur Kommunikation mit der Simulationssoftware. Laut Hersteller gibt es dafür wohl kein Programming guide.
Dann ist wohl der Hersteller gefordert, da anscheinend ein Bug in der Bibliothek oder in der Simulationssoftware drin zu sein scheint.

Vermutlich gibt es noch eine andere Möglichkeit mit dem Programm zu kommunizieren (C Bibliothek?), dann probier nochmal das.
 

Neue Beiträge