我是Python新手,所以请耐心等待。我编写了一个脚本来检查 3G 加密狗上的运营商名称,python-pyserial基本上如下所示:
def get_operator():
ID_OPSEL=('51011:XL-Axiata','51010:Telkomsel','51089:Three','51001:Indosat','INDOSAT:Indosat','51008:Axis','TELKOMSEL:Telkomsel')
if TYPE=="ZTE":
resp=send_at_wait('AT+COPS?','+COPS:',3)
if resp<>"TIMEOUT":
resp=get_value(resp,'+COPS:')
return resp.spilt('"')[1]
else:
resp= send_at_wait("AT+COPS?; +COPS?\r","+COPS:",3)
if resp<>"TIMEOUT":
resp=get_value(resp,'+COPS:')
resp=resp.split(',')
if len(resp)>2:
resp=resp[2].replace('"','')
for ln in ID_OPSEL:
if ln.find(resp)<>-1:
return ln.split(':')[1]
else:
return "Not Registered"
op=get_operator()
if "Not Registered" in op:
print "No Signal"
else:
print "Operator Name: " + op
Run Code Online (Sandbox Code Playgroud)
当有接待时,一切正常,但当没有接待时,脚本返回:
Traceback (most recent call last):
File "/usr/bin/gsm", line 639, in <module>
if "Not Registered" in op:
TypeError: argument of type 'NoneType' is not iterable …Run Code Online (Sandbox Code Playgroud)