[Python-de] Pipes
Georg Mischler
schorsch at schorsch.com
Mon Apr 11 01:55:44 CEST 2005
Marcus Habermehl wrote:
> Hallo.
>
> Nach dem ich jetzt das ganze Wochenende weiter herumexperimentiert habe,
> hab ich eine Lösung gefunden. :)
>
> Auch, wenn es jetzt doch nichts mit einer Pipe zu tun hat, hier mal
> meine gefundene Lösung:
>
> def ausfuehren():
> child = pexpect.spawn('find /usr -type d')
> while gtk.events_pending():
> gtk.main_iteration()
> line = child.readline()
> while line:
> while gtk.events_pending():
> gtk.main_iteration()
> tbuffer1.insert_at_cursor(line)
> tview1.scroll_to_mark(tbmark1, 0.05, True, 0.0, 1.0)
> line = child.readline()
>
> Oder einfach gesagt: Mit pexpect funktioniert das Ganze so, wie ich es
> mir vorgestellt habe. Auch wenn ich jetzt nach zwei Wochen freiwillig in
> die Geschlossene gehen würde. ;)
Ungetestet: Soweit ich es verstehe, sollte der gleiche Ansatz
auch mit dem Standard-Modul subprocess funktionieren:
def ausfuehren():
child = subprocess.Popen(['find', '/usr', '-type', 'd'],
stderr=subprocess.PIPE)
while gtk.events_pending():
gtk.main_iteration()
line = child.stdout.readline()
while line:
while gtk.events_pending():
gtk.main_iteration()
tbuffer1.insert_at_cursor(line)
tview1.scroll_to_mark(tbmark1, 0.05, True, 0.0, 1.0)
line = child.stdout.readline()
Aber vielleicht habe ich ja auch irgendeinen Haken dabei
übersehen... ;)
-schorsch
--
Georg Mischler -- simulations developer -- schorsch at schorsch com
+schorsch.com+ -- lighting design tools -- http://www.schorsch.com/