如何在Python的for循环中跳过AttributeError并继续循环

1 投票
2 回答
7704 浏览
提问于 2025-04-18 13:31

我正在用一个“for循环”来从多个文件中记录IMEI号码,并把它们放到一个数组里。

但是,当没有检测到IMEI时,这个for循环就会停止,并显示一个错误信息:AttributeError:rint。

    result = getattr(asarray(obj), method)(*args, **kwds)
    AttributeError: rint

我用过这种方法:

for IMEI in file():
    try:
        detect the IMEI from the files()
        Append them to the array()
    exception AttributeError:
        print 'File name'
        pass

我想要做的是,如果在文件中没有检测到IMEI,就跳过这个错误,然后继续循环,去其他文件中寻找IMEI。

IMEI是一个16位的字母数字代码。我把它当作“字符串”来使用。

我处理了3200个“.dat”文件,目的是在每个文件中找到这样的字母数字文本。每个.dat文件里都有一些十六进制数据。

2 个回答

2

我找到了答案,这个方法在我这里有效。

答案是:

if IMEI is None:
    continue

这个方法可以在返回值是None的时候跳过循环,而在我的情况下,AttributeError也意味着同样的事情。

3
try:
    execute_something()
except AttributeError:
    caught_error()

这就是我们在Python中捕捉错误的方法。只需在你的循环中加入上面的代码片段。把我用的函数换成你自己的代码就可以了。

如果还有什么不明白的地方,请随时问我。

撰写回答