问题描述
我进行了以下子过程来与yowsup-cli
进行交互。
connection_string = "python /root/yowsup/yowsup-cli demos --yowsup --config config.json"
popen_parameters = connection_string.split(" ")
proc = Popen(popen_parameters,stdout=PIPE,stderr=PIPE)
out,err = proc.communicate()
交互工作正常,我能够发送参数,但没有从yowsup-cli的CLI返回任何信息。返回在后台工作。
我需要从输入中发送一些变量,并从yowsup-cli
接收结果。
解决方法
我使用了Pexpect并创建了一个算法来实现我的目标。 对于那些需要创建自动化的人,这里是我所使用的:
child = pexpect.spawn('/bin/bash')
fout = open('mylog.txt','wb')
child.logfile = fout
child.sendline('/usr/bin/python /root/yowsup/yowsup-cli demos --yowsup --config config.json')
child.expect('offline')
诀窍是在运行python脚本之前创建一个bash
子进程。
在child.expect('offline')
的最后一行之后,您可以按照适合您的海豚的逻辑发送所需的命令。
希望对其他人有帮助