用Python脚本封装交互式命令行应用程序
我想从Python中控制一个互动的命令行应用程序。
我想最基本的需求是写一个Python脚本,能够在主机操作系统上启动这个命令行应用。然后把标准输入的内容传给这个命令行应用,再把这个命令行应用的输出结果传回标准输出。
在这个基础上,对输入和输出进行一些处理应该就很简单了。
说实话,我可能只需要知道这个技术叫什么。我不知道该搜索什么内容。
2 个回答
17
也许你想了解一下 Subprocess 这个模块(MOTW 也有相关内容)。
我通常用下面的代码来调用系统的命令行:
from subprocess import Popen, PIPE
## shell out, prompt
def shell(args, input_=''):
''' uses subprocess pipes to call out to the shell.
args: args to the command
input: stdin
returns stdout, stderr
'''
p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate(input=input_)
return stdout, stderr
11
你觉得PExpect这个工具适合你吗?