[Python-de] os.popen2()

Bertram Scharpf lists at bertram-scharpf.de
Don Nov 18 18:14:24 CET 2004


Hallo,

ich möchte die Ausgabe einer Funktion durch ein externes
Programm leiten, ungefähr so:

    old = 'Hallo, Pipe!\n'
    i, o = os.popen2( 'sed s/^/:/')
    i.write( old)
    i.close()
    del old
    new = o.read()

Allerdings bleibt die Funktion `write' stehen, wenn der
Puffer von 16384 Bytes voll ist, also mit:

    old = 'Hallo, Pipe!\n' * 1261

Wenn ich weniger als 16384 Bytes schreibe, bleibt der
anschließende `read' stehen.

Wie geht der offiziell richtige Weg?

Danke erstmal,

Gruß
Bertram

-- 
Bertram Scharpf
Stuttgart, Deutschland/Germany
http://www.bertram-scharpf.de