Raw_input到子进程

时间:2011-04-27 11:21:49

标签: python subprocess

有没有办法获取raw_input,将其记录到内存中,然后在子进程中调用它?

x = raw_input("what is your fav. Color??")
Subprocess.Popen("C://Windows/system32/cmd.exe")
os.system('echo your favorite color is "x"')

我对此的主要需求是,我可以将用户的raw_input合并到我朋友制作的命令行程序中。

2 个答案:

答案 0 :(得分:5)

好的,您可以使用raw_input

获取输入
x = raw_input('Input:')

然后将其发送到子进程命令,该命令正在调用您朋友的二进制文件,如此

from subprocess import Popen, PIPE, STDOUT

p = Popen(['yourfriendsbinary'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)

out,err = p.communicate(input=x)
print(out)

答案 1 :(得分:0)

您可以将其作为Space_COwbOy提到的命令行参数传递,或者您可以打开管道,如果该子进程侦听std-input,则设置子进程的std-input以便重定向到父进程的输出管道。然后,当您通过父管道输入数据时,子流程将从父项中获取输出,就像它从标准输入读取一样。