从子流程cli,yowsup-cli读取输出以存储输出

问题描述

我进行了以下子过程来与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')的最后一行之后,您可以按照适合您的海豚的逻辑发送所需的命令。

希望对其他人有帮助