Seite 1 von 1

Terminal Session emulieren

Verfasst: Sonntag 28. März 2010, 17:58
von ReticulatedPython
Guten Tag!

Ich möchte unter Linux mit Python ein Add-On für ein Programm schreiben.
Das Add-On soll unter anderem eine Terminalsession emulieren.

Beispiel: Ich möchte mit diesem Add-On folgende Befehle wie im Linux-Terminal ausführen:

cd /home/user/Desktop
rm test.txt
ls

Ob es unter anderen Systemen wie Linux funktioniert oder nicht, sei erstmal egal.
Ich hoffe mir kann hier jemand helfen.

Probiert habe ich es schon mit os.popen und dem subprocess, aber ich kann da immer nur ein Befehl ausführen. Dann wird dieser wieder praktisch vergessen. Ich komme also in dem oben genannten Beispiel nie auf den Desktop, um da was zu löschen und dann die Dateien auszugeben.

Mit freundlichen Grüßen,
ein verzweifelter Python-Anfänger

Verfasst: Sonntag 28. März 2010, 18:14
von Hyperion
Für die von Dir genannten Aktionen hat Python Bordmittel; guck mal in das os-Modul. Z.B. os.listdirs() und os.remove(path).

Ansonsten: Poste doch mal deinen bisherigen Versuch! Ohne etwas Code können wir schlecht sagen, was Du falsch machst...
Das Boad hat code-Tags, die Du dann nutzen solltest. [ post=py ]...[/ code ] ohne die Leerzeichen.

Bei größeren Mengen (so ab >30-40 Zeilen) poste es bitte in ein paste-bin (z.B. paste.pocoo.org)

Verfasst: Sonntag 28. März 2010, 21:18
von ReticulatedPython
Das hier habe ich bisher:

Code: Alles auswählen

p = os.popen('cd /home/user/Desktop')
p = os.popen('./my_app')
s = p.read()
p.close()
message = s;
In message befindet sich dann die Ausgabe des Programmes ./my_app. Statt my_app kann ich dann auch sowas wie "ls" eintippen (die Konsole praktisch)

Problem ist nun:
Wie kann ich nun davor wirklich auf den Desktop wechseln um das Programm auszuführen? Denn wenn ich cd damit ausführe und danach dann ls, bin ich immer noch im gleichen Verzeichnis.

Verfasst: Sonntag 28. März 2010, 21:56
von derdon
Anstatt os.popen solltest du auf jeden Fall das Modul subprocess nutzen!

Verfasst: Sonntag 28. März 2010, 23:30
von Leonidas
Du könntest etwa eine Shell starten und in diese deine Befehle eingeben.

Verfasst: Montag 29. März 2010, 08:04
von mkesper
Ich würde auf jeden Fall Hyperions Vorschlag nachgehen.
Bzw. was ist denn der Sinn des Add-Ons? Soll ein Benutzer Shell-Befehle eingeben können?

Verfasst: Montag 29. März 2010, 12:40
von ReticulatedPython
Mit dem Add-On wollte ich ein Terminal emulieren. Das Add-On wurde für ein Chatprogramm geschrieben.
Deshalb bringen mir Hyperions Vorschläge eher wenig was in diesem Zusammenhang.

Aber trotzdem danke für eure Hilfe =)