Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中自动化交互式控制台应用程序?_Python_Linux_Shell_Subprocess_Linphone - Fatal编程技术网

如何在Python中自动化交互式控制台应用程序?

如何在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

我想用Python中的脚本控制正在运行的进程/程序。 我有一个程序'linphonec'(您可以安装:apt get install linphonec)。 我的任务是:

  • 运行
    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()