2017-04-23 70 views
1

我试图使用gammu在短信中发送变量。我使用gammu smsd runonreceive来运行python脚本,当我从手机发送消息给我的树莓派时。这是剧本的样子。在gammu中发送带变量的短信[python]

#!/usr/bin/python 
import os 

os.system("sh .webgps.sh > coordinates.text") 

file = "/home/pi/coordinates.text" 
with open(file) as f: 
(lat, long) = f.read().splitlines() 

os.system("echo lat | sudo gammu-smsd-inject TEXT 07xxxxxxxxx") 

这个脚本的功能是运行一个shell脚本,它从我的gps模块获取纬度和经度,并将它们放在一个文本文件中。然后它从文本文件中获取值,并将纬度放在lat变量中,将经度放在long变量中。我可以验证这是有效的,因为当我打印变量时,我可以看到经度和纬度,它们与文本文件中的值相同。

现在,我有问题的位是将值发送到我的手机。如果我运行python脚本它现在是如何,那么我在我的手机上收到一条消息,说拉特。我想要的是发送经纬度的实际值,我不知道如何将变量放入gammu注入文本行。

回答

0

在手机中收到“lat”,因为在os.system回声调用中python var“lat”未被解析。

发送一个python变量到shell是有点奇怪的故事。

一个解决方案,为我在类似的情况曾是这样的:

with open(file) as f: 
    (lat, long) = f.read().splitlines() 

cmd="echo "+lat+" | sudo gammu-smsd-inject TEXT 07xxxxxxxxx" 
os.system(cmd) 
+0

@戴夫这这个工作? –