0
我有一个循环,它向调制解调器写入命令,并读取调制解调器直到找到'OK'或'ERROR'。循环工作;一旦。出于某种原因,只要循环第一次完成,就会中断。下面的代码:Python:嵌套循环没有按预期运行
for modem in ser:
for port in modem:
print port.name
port.write('ati\r\n')
a=port.read(size=2000)
a=a.splitlines()
t=False
while t!=True:
for line in a:
print line
if line=='OK' or line=='ERROR' or '$GP' in line:
t=True
print 'howdy ho diddly doo'
,我也做了while循环是这样的:
while True:
for line in a:
print line
if line=='OK' or line=='ERROR' or '$GP' in line:
t=True
if t==True:
break
然而,这两个版本,它的结果是这样的:
COM71
ati
Manufacturer: Sierra Wireless, Incorporated
Model: MC8705
Revision: T3_5_2_1AP R517 CNSZXD00000128 2012/02/07 13:03:25
IMEI: 353567040568900
IMEI SV: 5
FSN: CC30942172510
3GPP Release 7
+GCAP: +CGSM,+FCLASS,+DS
OK
howdy ho diddly doo
>>> len(Ports) #Ports is ser (the list that I pass through for the function)
4
>>>
我知道可以确定ser的长度大于1,并且循环应该运行多次。我究竟做错了什么?
ser有几个调制解调器并不明显。尝试迭代服务器和输出调制解调器代理,并迭代每个调制解调器和输出端口名称。如果真的有一些项目在服务,那么我们有一些讨论。 – peroksid
对''while循环嵌套'while'的思想是什么?除非我弄错了,否则while循环会无限运行,一次又一次循环'a',或者只循环一次。在每次迭代中,if条件是真或假;在这个循环中'a'永远不会改变! –
@peroksid我编辑它以包含输出以及查询列表长度后。 – RageCage