2013-06-03 51 views
0

我正在通過python與串行端口進行通信。我通過了一個AT命令來列出電話簿。現在我需要取得我收到的電話號碼。我如何通過python獲取特定的數字。通過python獲取數字

+CMGR: "REC READ","+911234567890",,"13/05/31,10:00:14+22" 
+1

通過 「抓取」 你的意思是 「分析」? – 2013-06-03 07:02:35

+0

在打印輸出時獲取。 –

回答

1

這樣的事情?

>>> import re 
>>> strs = '+CMGR: "REC READ","+911234567890",,"13/05/31,10:00:14+22' 
>>> re.search(r'"(\+91\d+)"', strs).group(1) 
'+911234567890' 
>>> 
+0

進口串行 從詛咒導入ASCII 進口重新 SER = serial.Serial( '的/ dev/ttyUSB0',9600,超時= 3) 響應= ser.write( 'AT + CMGR = 3 \ r \ N' ) re.search(R ' 「(\ + 91 \ d +)」',響應)。集團(1) 這不是工作要麼 –

1

如果該號碼始終是第n個字段,則:

s = '+CMGR: "REC READ","+911234567890",,"13/05/31,10:00:14+22"' 
import csv 
print next(csv.reader([s]))[1] 
# +911234567890 
+0

進口串行 從詛咒導入ASCII SER = serial.Serial( '/ dev/ttyUSB0',9600,timeout = 3) response = ser.write('AT + CMGR = 3 \ r \ n') import csv print next(csv.reader([response]))[1 ] 這不起作用。 –