我試圖解析從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