有没有办法获取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合并到我朋友制作的命令行程序中。
答案 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以便重定向到父进程的输出管道。然后,当您通过父管道输入数据时,子流程将从父项中获取输出,就像它从标准输入读取一样。