在它运行的这段代码中,我不明白为什么会引发 WindowsError。如果我不写break语句,strout处写成无限循环:
'OSError' 对象标志 2 的成员 'strerror'
正如https://docs.python.org/3/library/itertools.html#itertools.count所说,count() 相当于一个 for 循环。
是否有可能当 itertools.count() 到达最后一个元素时,引发错误,并且我写了一个中断语句,是否有可能退出 for 循环?
我不知道我已经足够清楚了......这就是代码:
for i in itertools.count():
try:
val=winreg.EnumValue(key,i)
print(str(val[1]))
if (val[1]=='COM3'): #SERIAL PORT
port=val[1] #COM PORT
except WindowsError:
print(WindowsError.strerror, ' flag2')
break
对我来说,代码很好并且可以运行,但我只想知道 itertools 是否引发错误,因为它到达最后一个元素,为此我必须编写一个中断语句。如果是,如果有没有错误的替代代码,或者更优雅。
谢谢