У меня есть небольшой инструмент командной строки, который читает из стандартного ввода.
В командной строке я бы запустил либо ...
./foo < bar
или ...
cat bar | ./foo
С помощью gziped файла я могу запустить
zcat bar.gz | ./foo
в Python я могу сделать ...
Popen(["./foo", ], stdin=open('bar'), stdout=PIPE, stderr=PIPE)
но я не могу сделать
import gzip
Popen(["./foo", ], stdin=gzip.open('bar'), stdout=PIPE, stderr=PIPE)
Я вынужден бежать
p0 = Popen(["zcat", "bar"], stdout=PIPE, stderr=PIPE)
Popen(["./foo", ], stdin=p0.stdout, stdout=PIPE, stderr=PIPE)
Я что-то не так делаю?
Почему я не могу использовать gzip.open ('bar') в качестве стандартного аргумента для Popen?