【发布时间】:2011-02-13 12:55:44
【问题描述】:
我有一个从标准输入读取的小命令行工具。 在命令行上我会运行...
./foo < bar
或者...
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 的标准输入参数?
【问题讨论】:
标签: python scripting subprocess