6 Stimmen

Kann ich eine geöffnete gzip-Datei mit Popen in Python verwenden?

Ich habe ein kleines Kommandozeilenprogramm, das von stdin liest. Auf der Kommandozeile würde ich entweder...

./foo < bar

oder ...

cat bar | ./foo

Mit einer gezipten Datei kann ich Folgendes ausführen

zcat bar.gz | ./foo

in Python kann ich ...

Popen(["./foo", ], stdin=open('bar'), stdout=PIPE, stderr=PIPE)

aber ich kann es nicht tun

import gzip
Popen(["./foo", ], stdin=gzip.open('bar'), stdout=PIPE, stderr=PIPE)

Am Ende muss ich laufen

p0 = Popen(["zcat", "bar"], stdout=PIPE, stderr=PIPE)
Popen(["./foo", ], stdin=p0.stdout, stdout=PIPE, stderr=PIPE)

Mache ich etwas falsch? Warum kann ich gzip.open('bar') nicht als stdin-Arg für Popen verwenden?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X