这类似于this question,除了我想以一个新的BLF文件而不是一个.csv文件结束。我这样做是为了删除BLF文件中的一个损坏的对象,该对象阻止我将其导入到Vector的软件中。我想有一种方法可以直接将BLFReader生成的'can.io.blf.BLFReader‘类对象直接传递给BLFWriter,但是我想不出该怎么做。下面的示例代码应该有助于解释我想要实现的功能:
import can
filename_in = "corrupted.blf"
log = can.io.BLFReader(filename_in)
filename_out = "cleaned.blf"
can.io.BLFWriter(filename_out,log)发布于 2018-11-17 02:18:12
以下是我的解决方案:
def BLFRepair(filename_in, filename_out):
""" Repairs a corrupted Vector .blf fileself.
Args:
filename_in (str): Filename of input corrupted file.
filename_out (str): Filename to save repaired file with.
"""
cleaned_log=BLFReader(filename_in) # ignores errors
logger=BLFWriter(filename_out)
for msg in cleaned_log:
logger.on_message_received(msg)
logger.stop()https://stackoverflow.com/questions/53109803
复制相似问题