我想忽略文件中与所有预定义解析器都不匹配的行,然后继续。我想忽略的行的范围很广,我无法为它们中的每一行检查和定义解析器。你知道吗
我使用try..except和pass,一旦捕获到ParseException。但是,解析立即停止。你知道吗
try:
return parser.parseFile(filename, parse_all)
except ParseException, err:
msg = 'Error during parsing of {}, line {}'.format(filename, err.lineno)
msg += '\n' + '-'*70 + '\n'
msg += err.line + '\n'
msg += ' '*(err.col-1) + '^\n'
msg += '-'*70 + '\n' + err.msg
err.msg = msg
print(err.msg)
pass
即使出现异常,我也希望继续。你知道吗
Pyparsing实际上没有“continueonerror”选项,因此您需要调整解析器,以便它不会首先引发ParseException。您可以尝试将
| SkipTo(LineEnd())('errors*')
之类的内容添加到解析器中,作为最后一招。然后,您可以查看errors results名称来查看哪些行出错了(或者向该表达式添加一个解析操作来捕获更多的行)。你知道吗印刷品:
添加这些行并再次调用runTests:
印刷品:
相关问题 更多 >
编程相关推荐