背景资料:
我正在编写一个 Python 应用程序,它将接收 WhatsApp 消息并根据提供的命令执行一些操作。为此,我安装了 yowsup,它也是一个处理 WhatsApp 消息传递的 Python 应用程序。
战略:
Yowsup 有一个很好的接口来发送和接收消息,所以我的想法是通过 Popen 启动进程并处理标准输入、标准输出和标准错误。为此,我编写了以下代码:
from subprocess import Popen, PIPE
statement = "sudo /home/pi/yowsup/yowsup-cli demos --yowsup --config /home/pi/yowsup/config"
yowsup = Popen(statement.split(" "), stdout=PIPE, stdin=PIPE, stderr=PIPE)
while True:
output = yowsup.stdout.readline()
if output != "":
print output.rstrip()
问题:
该代码没有返回任何消息,因此我更改了语句以检查我的代码是否正常:
statement = "ping 192.168.0.9 -c 4"
答对了!使用命令ping
,代码工作得很好。
我的问题:
为什么我无法通过使用 yowsup 应用程序来处理标准输入和标准输出以及如何使其工作?
yowsup 也是一个 Python 应用程序有什么作用吗?