【发布时间】:2013-08-05 11:19:13
【问题描述】:
我有一个主进程,我在其中运行一个子进程,stdin 是我想要管道的。我知道我可以使用文件来做到这一点:
import subprocess
subprocess.call('shell command', stdin=open('somefile','mode'))
是否有任何选项可以在没有实际硬盘驱动器文件的情况下使用自定义标准输入管道?是否有任何选项,例如,使用字符串列表(每个列表元素都是换行符)?
我知道python子进程在管道对象上调用.readline()。
【问题讨论】:
-
虽然不一定是您问题的答案,但值得一提的是,任何符合 POSIX 标准的操作系统都支持将 /dev/stdin 用作“文件”,这可以通过 shell 命令使用EOF 用于终止流。刚刚在 OSX、Linux 和 OpenBSD 上使用 tcsh 和 bash 验证了这一点。
-
@synthesizerpatel 不是答案,但感谢您的宝贵意见!
-
好吧.. 公平地说,这是一个的答案。只是不是的答案。 :D