2016-09-17 82 views
0

我想在Python中通過腳本控制正在運行的進程/程序。 我有一個程序`linphonec'(你可以安裝:apt-get install linphonec)。 我的任務是:如何在Python中自動化交互式控制檯應用程序?

  1. 運行linphonec(我用的那一刻子)
  2. linphonec運行它有很多的命令來控制這一點,我想e.g(在linphonec命令)使用proxy list

簡單的流程:

[email protected]$ > linphonec 
linphonec > proxy list 

我怎樣才能做到這一點?

+0

尋找pexpect模塊 – Hackaholic

+0

嘗試man linphonec或linphonec --help – Juggernaut

+0

謝謝哈克狂歡節。 – t0mq

回答

0

其實有2種方式進行通信:

myprogram.py | linphonec運行您的程序通過一切你print到linphonec

使用subprocess.Popensubprocess.PIPE在通過keywrod-args作爲標準輸入構造(propably輸出和錯誤,太),然後communicate單個命令或使用stdinstdoutstderr)作爲文件

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() 
+0

謝謝!我測試了你的第一個通知和pexpect模塊。 – t0mq

相關問題