我有一个很大的blf文件blf_file.blf
和一个关联的dbc文件dbc_file.dbc
。我需要阅读和解码所有消息并将它们存储在列表中。为此,我使用了python-can库:
decoded_mess = []
db = cantools.db.load_file('dbc_file.dbc')
with can.BLFReader('blf_file.blf') as can_log:
for msg in can_log:
decoded_mess.append(
db.decode_message(msg.arbitration_id, msg.data)
)
但是,对于我的blf文件(> 100 MB),这最多需要5分钟。
有没有办法加快速度?最后,我想将每个信号存储在单独的列表中,所以列表理解不是一个选择。