带例外窗口的itertools

2024-06-09 02:03:55 发布

您现在位置:Python中文网/ 问答频道 /正文

在它运行的这段代码中,我不明白为什么会引发WindowsError。如果我不写一个断句,在strout写为无限循环:

member 'strerror' of 'OSError' objects flag2

正如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是否会因为到达最后一个元素而引发错误,为此我必须编写一个中断语句。如果是,如果有一个没有错误的替代代码,或者可能更优雅

谢谢


Tags: 代码元素forportcount错误val语句