2017-04-23 49 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

@戴夫這這個工作? –