我试图解析从python中的GSM调制解调器接收到的消息。在python中解析GSM调制解调器接收的消息参数
我有很多消息需要解析。我每隔几个小时收到一封新邮件。
下面是通过使用串行对象将数据从调制解调器读入列表x后接收的数据示例。
AT+CMGL="ALL"
+CMGL: 1,"REC READ","+918884100421","","13/04/05,08:24:36+22"
here's message one
+CMGL: 2,"REC READ","+918884100421","","13/04/05,09:40:38+22"
here's message two
+CMGL: 3,"REC READ","+918884100421","","13/04/05,09:41:04+22"
here's message three
+CMGL: 4,"REC READ","+918884100421","","13/04/05,10:04:18+22"
here's message four
+CMGL: 5,"REC READ","+918884100421","","13/04/05,10:04:32+22"
here's message five
.
.
.
.
.
还有很多消息,我刚刚在这里列出了五个。
我的主要意图是提取消息的内容,例如“这里是消息一”等等,我接收到的每条消息。
下面是我现在使用的代码。
def reading():
print "Reading all the messages stored on SIM card"
phone.write(b'AT+CMGL="ALL"\r')
sleeps()
x=phone.read(10000)
sleeps()
print x
print "Now parsing the message!"
k="".join(x)
parse(k)
k=""
def parse(k):
m = re.search("\+CMGL: (\d+),""(.+)"",""(.+)"",(.*),""(.+)""\r\n(.+)\r\n",k)
print "6="
print m.group(6)
电话是我用来从GSM调制解调器读取的串行对象。
这里m.group(6)捕获的第一条消息的消息内容“这里的消息一个”
我怎样才能得到它的所有消息,不只是第一个的内容相匹配。
我试着设置多行标志,但没有奏效。没有使用re.findall()代替re.search()。
此外re.search返回的匹配对象不可迭代。
请帮忙。
我可以问你添加接收消息的Python程序到你的问题吗? – Abraham 2015-06-20 06:47:43