我试图了解一个没有设置结果代码的功能的输出。我可以通过混合到标准错误流中的“错误:”字符串来判断它失败,通常在不同的转换状态消息中间。
我有以下列表理解,它有效,但扫描“错误:”字符串两次。由于它只是重新扫描实际的错误行,它工作正常,但它让我很恼火,我无法弄清楚如何使用单次扫描。这是工作代码:
errors = [e[e.find('error:'):] for e in err.splitlines() if 'error:' in e]
简化的明显(和错误)方法是保存“查找”结果
errors = [e[i:] for i in e.find('error:') if i != -1 for e in err.splitlines()]
但是,我得到“UnboundLocalError:分配前引用的局部变量'e'”。盲目地颠倒理解中的“for”也失败了。这是怎么做到的?
谢谢。肯特