我是Python的初学者,所以请耐心等待。我需要我的python程序接受来自命令的传入数据(stdin)(ibeacon scan -b)并通过查询字符串将该数据发送到我的服务器。我在覆盆子pi上使用Raspbian。 ibeacon_scan命令输出如下所示。
iBeacon Scan ...
3F234454-CFD-4A0FF-ADF2-F4911BA9FFA6 1 4 -71 -69
3F234454-CFD-4A0FF-ADF2-F4911BA9FFA6 6 2 -71 -63
3F234454-CFD-4A0FF-ADF2-F4911BA9FFA6 1 4 -71 -69
3F234454-CFD-4A0FF-ADF2-F4911BA9FFA6 5 7 -71 -64
...keeps updating
我正在将命令写入python脚本。
ibeacon scan -b > python.py &
以下是我认为可行的概要。我需要帮助正确组织代码。
import httplib, urllib, fileinput
for line in fileinput():
params = urllib.urlencode({'@UUID': 12524, '@Major': 1, '@Minor': 2, '@Power': -71, '@RSSI': -66})
headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
conn = httplib.HTTPConnection("www.example.com")
conn.request("POST", "", params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
data
conn.close()
我知道这有很多问题,我可以真正使用任何建议。谢谢你的时间!
答案 0 :(得分:0)
您的代码中存在多个问题。
<强> 1。错误的bash命令:
目前您正在将输出扩展到python.py
文件,这是完全错误的。您应该使用管道并执行python.py脚本。您的命令应如下所示:
ibeacon scan -b | ./python.py &
使你的python.py脚本可执行(chown)。作为替代方案,您也可以尝试这样做:
ibeacon scan -b | python python.py &
<强> 2。错误使用fileintput:您的for循环应如下所示:
for line in fileinput.input():
...