如何在Python中自动化交互式控制台应用程序?
我想用Python中的脚本控制正在运行的进程/程序。 我有一个程序'linphonec'(您可以安装:apt get install linphonec)。 我的任务是:如何在Python中自动化交互式控制台应用程序?,python,linux,shell,subprocess,linphone,Python,Linux,Shell,Subprocess,Linphone,我想用Python中的脚本控制正在运行的进程/程序。 我有一个程序'linphonec'(您可以安装:apt get install linphonec)。 我的任务是: 运行linphonec(我正在使用子进程) 当linphonec运行时,它有许多命令来控制它,我想使用proxy list(linphonec中的命令) 简单流程: test@ubuntu$ > linphonec linphonec > proxy list 我如何才能做到这一点?实际上有两种沟通方式: 使用m
linphonec
(我正在使用子进程)linphonec
运行时,它有许多命令来控制它,我想使用proxy list
(linphonec
中的命令)test@ubuntu$ > linphonec
linphonec > proxy list
我如何才能做到这一点?实际上有两种沟通方式: 使用
myprogram.py | linphonec运行您的程序
将您打印的所有内容传递给linphonec
通过用于stdin(也可能是stdout和stderr)的keywrod参数在构造函数中与一起使用,然后用于单个命令或将and()用作文件
实际上有两种沟通方式: 使用
myprogram.py | linphonec运行您的程序
将您打印的所有内容传递给linphonec
通过用于stdin(也可能是stdout和stderr)的keywrod参数在构造函数中与一起使用,然后用于单个命令或将and()用作文件
查找pexpect Modulery man Linphone或Linphone-Help我更改了标题以解决更清晰的问题。我重新格式化了你的文本,这样更容易阅读。好的,你说得对。重新格式化后更容易阅读。谢谢。请查找pexpect Modulery man linphonec或linphonec--Help我更改了标题以解决问题。我重新格式化了你的文本,这样更容易阅读。好的,你说得对。重新格式化后更容易阅读。谢谢,谢谢!我测试了你的第一个通知和预期模块。谢谢!我测试了你的第一个通知和预期模块。
import subprocess
p=subprocess.Popen("linphonec",
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True) #this is for text communication
p.stdin.write("proxy list\n")
result_first_line=p.stdout.readline()