我有一个从标准输入读取数据的小命令行工具。
在命令行上我会运行...
./foo < bar
or ...
cat bar | ./foo
使用 gzip 压缩文件我可以运行
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 的标准输入参数?