Hallo zusammen,
erstmal vor ab, ich bin Laie hinsichtlich Pythonprogrammierung
ist es irgendwie möglich aus einem laufenden Pythonscript Vraiable in einem separatem LXterminal abzufragen?
In meinem Script werden Variabel verändert, wie kann ich diese Werte von Extern auslesen. Natürlich könnte ich im Script mit print arbeiten. Es ist jedoch ein sehr grosses Programm, das permanent läuft und die Variablen erst nach 24 Std ändert. Ich müsste jedesmal 24 Std warten.
Oder gibt es eine Anweisung in Python eine Anweisung alle Variablen lokale und globale auszugeben.
Danke
Gruß
Knuffi
Variable im LXterminal ausgeben
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Pauschal gesagt: Nein, das geht nicht.
Wenn du jetzt allerdings dein Programm so aenderst, dass du es von aussen ansprechen kannst, dann geht das durchaus.
Ist das Programm kein Server, der solche Anfragen beantworten kann, musst du diese Informationen eben proaktiv exportieren.
Das ginge zum Beispiel in dem du das fortlaufend in Dateien rausschreibst.
Wenn du jetzt allerdings dein Programm so aenderst, dass du es von aussen ansprechen kannst, dann geht das durchaus.
Ist das Programm kein Server, der solche Anfragen beantworten kann, musst du diese Informationen eben proaktiv exportieren.
Das ginge zum Beispiel in dem du das fortlaufend in Dateien rausschreibst.
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
@Knuffi:
Vllt. reicht Dir ja die Erstellung einer Log-Datei, welche bei Änderung der fraglichen Variablen deren Ausprägung rausschreibt. Dann kannst Du u.a. mit `tail -f <datei>` mit einem Terminal darauf zugreifen. Simpelste Log-Funktionalität wäre `print` mit STDOUT-Umleitung, komfortabler geht es mit dem logging Modul.
Wenn Du eine interaktive Abfrage der Werte aus dem Programm heraus ermöglichen willst, wird es schwieriger. Dann muss das Programm einen IPC-Weg hierfür vorhalten, z.B. per Socket oder Pipes (ginge auch mit STDIN+STDOUT). Um das sauber in das Programm einzuarbeiten, wäre wichtig, ob es ergeignisbasiert ist und meistens auf Input wartet - dann geht es ohne extra Thread oder ob es meistens beschäftigt ist - dann bräuchtest Du einen Thread für die Abfrage.
Vllt. reicht Dir ja die Erstellung einer Log-Datei, welche bei Änderung der fraglichen Variablen deren Ausprägung rausschreibt. Dann kannst Du u.a. mit `tail -f <datei>` mit einem Terminal darauf zugreifen. Simpelste Log-Funktionalität wäre `print` mit STDOUT-Umleitung, komfortabler geht es mit dem logging Modul.
Wenn Du eine interaktive Abfrage der Werte aus dem Programm heraus ermöglichen willst, wird es schwieriger. Dann muss das Programm einen IPC-Weg hierfür vorhalten, z.B. per Socket oder Pipes (ginge auch mit STDIN+STDOUT). Um das sauber in das Programm einzuarbeiten, wäre wichtig, ob es ergeignisbasiert ist und meistens auf Input wartet - dann geht es ohne extra Thread oder ob es meistens beschäftigt ist - dann bräuchtest Du einen Thread für die Abfrage.