2013-07-08 45 views
0

我试着去与一个被写在其他的Perl和Ruby的其他蟒蛇的倍数外壳程序进行交互..Python和Shell命令交互

认为终端,他们作为一个命令运行简单的

$python demo.py 

Option1 
Option2 
Option3 
Option4 

app1>1 

#Menu 1 options 
Option1 from menu 1 
Option2 from menu 1 
Option3 from menu 1 
Option4 from menu 1 

app1>2 

#Option 2 from menu1 options 
Option2.1 from menu 1 
Option2.2 from menu 1 
Option2.3 from menu 1 
Option2.4 from menu 1 

app1>2 

所有3个应用程序办得差不多了,但我尽量用PHP命令了shell_exec,蟒蛇OS模块,没有人能够与子菜单和节目流交互...

我能跑:

import os 
list = os.popen('pwd').read() 
print list 

<?php shell_exec(´ls -las´)?> 

没有任何一个有在迁移shell程序没有GUI界面的GUI Web界面的体验? (我的想法做类似于包装的与此程序交互)

回答

0

您将需要使用子模块创建子进程,然后要么用它使用互动方法或.stdin互动, .stdout属性(它们是文件类对象)。

但是,您必须在subprocess.Popen调用中传递stdin = subprocess.PIPE和stdout = subprocess.PIPE,否则您将无法进行交互。

如果你想将它绑定到一个web应用或其他东西,你还必须让它在后台运行,以便用户可以在多个HTTP请求中与程序进行交互。

+0

您是否有任何示例或代码可以查看子流程是如何工作的? – raf10x