Seite 1 von 1
Konsolen ausgaben in Python
Verfasst: Freitag 3. Dezember 2010, 20:36
von sttrader
Hallo an alle
Ich habe eine bestimmt recht einfache Frage ich bin gerade dabei ein Linux From Scratch
Installer zu schreiben, ich übergebe die einzelnen Kommandos per os.system("make") etc.
Gibt es eine Möglichkeit die ausgaben die eigentlich auf der Konsole sichtbar sind auch in
Python sichtbar zu machen???
LG
Re: Konsolen ausgaben in Python
Verfasst: Freitag 3. Dezember 2010, 20:39
von EyDu
Hallo.
Schau dir mal das subprocess-Modul an. Das möchtest du eh viel lieber verwenden als os.system

Re: Konsolen ausgaben in Python
Verfasst: Freitag 3. Dezember 2010, 20:47
von syntor
"auch" ist ein wenig schwieriger, wenn du gerne beides zur selben Zeit hättest. Am einfachsten ist es, zuerst alles via, wie von EyDu gesagt, subprocess und PIPE (2x) auszuführen. Dann kannst du mit communicate() den Output (sowie Fehler) abrufen - anschliessend ausgeben.
Wenn du beides gleichzeitig machen möchtest, hast das Problem, dass I/O "blocking" ist. Das heisst, wenn du z.B. über p.stdout.readline() die nächste Zeile abfragen willst - wobei p das Objekt von subprocess.Popen ist - dann wartet dein Pythonprogramm solange, bis das Unterprogramm eine Zeile nach stdout schreibt. In dieser Zeit könnte es aber auch nach stderr schreiben, das würdest du dann nicht mitbekommen.
Du müsstest also zwei Threads erstellen, je einen pro Datei-Deskriptor(stdout/stderr)
Re: Konsolen ausgaben in Python
Verfasst: Freitag 3. Dezember 2010, 20:50
von lunar
@syntor: Man benötigt keine Threads, um quasi parallel von mehreren Pipes zu lesen. "select()" oder "epoll()" reichen vollauf. Davon abgesehen geht es dem OP wohl nur darum, überhaupt die Ausgabe eines Prozesses zu erlangen.
Re: Konsolen ausgaben in Python
Verfasst: Freitag 3. Dezember 2010, 20:54
von syntor
@lunar: Geht das nicht nur auf Linux? Was den zweiten Teil betrifft: Da magst du recht haben

Re: Konsolen ausgaben in Python
Verfasst: Freitag 3. Dezember 2010, 21:00
von sttrader
danke für die Antworten dann werde ich mir mal das subprocess-Modul ansehen

Re: Konsolen ausgaben in Python
Verfasst: Samstag 4. Dezember 2010, 13:22
von Leonidas
syntor hat geschrieben:@lunar: Geht das nicht nur auf Linux?
Und Linux from Scratch ist was für ein System?
Re: Konsolen ausgaben in Python
Verfasst: Samstag 4. Dezember 2010, 13:55
von lunar
Leonidas hat geschrieben:syntor hat geschrieben:@lunar: Geht das nicht nur auf Linux?
Und Linux from Scratch ist was für ein System?
Ein völlig überflüssiges?
SCNR
Re: Konsolen ausgaben in Python
Verfasst: Samstag 4. Dezember 2010, 20:37
von sttrader
Hallo Leonidas
So eins:
http://www.linuxfromscratch.org/
@lunar
Wie kommst du zu so einer Meinung ohne jegliche begründung???
Sowas hört man meistens von LFS Usern die zu faul sind sich damit Zeit
zu lassen. So wie ich deshalb Automatisiere ich es ja auch, aber mit X und
auch einem Desktop.
LG
Re: Konsolen ausgaben in Python
Verfasst: Samstag 4. Dezember 2010, 21:36
von lunar
@sttrader: Ach bitte, mein Beitrag war ein Scherz. Ich halte LFS zwar in der Tat für reichlich überflüssig und nutzlos, aber ich werde das jetzt bestimmt nicht mit Dir ausdiskutieren, zumal die Art Deines Beitrags darauf schließen lässt, dass Du Dein LFS bis aufs Blut verteidigen wirst, was jegliche Diskussion sowieso vollkommen sinnlos erscheinen lässt.
Leonidas weiß im Übrigen bestimmt, was LFS ist. Sein Beitrag war keine an Dich gerichtete Frage, sondern ein Hinweis mit dem Zaunpfahl an syntor, dass FLS in der Tat ein Linux ist, und sein Einwand gegen "select" und "epoll" daher eher überflüssig war.
Re: Konsolen ausgaben in Python
Verfasst: Samstag 4. Dezember 2010, 21:49
von sttrader
@ lunar
Nein so dramatisch wie du es gerade siehst hab ich es nicht mal gedacht, ganz erlich
wollte dich nicht angreifen oder eine Diskusion auslösen, und bis aufs Blut verteidige ich nur meine Familie und nicht eine Software geschweige denn eine Anleitung.
Wollte nur eine allgemeine begründung haben ohne hintergedanken.
Sorry wenn ich mich vieleicht unpassend ausgedrückt habe.
LG