Python-can 记录文件时间

Python-can Logging File Time

我刚开始使用 Python-can,我需要编辑内置日志记录功能的报告格式。下面是我所指的代码片段。

logger = can.Logger('log3.asc')

这是来自日志文件的 header 结果:

date Mon Jun 06 04:56:40.184122 PM 2020
base hex  timestamps absolute
internal events logged
Begin Triggerblock Wed Dec 12 10:17:48.038 PM 1969
0.000000 Start of measurement
0.000000 1  300             Rx   d 6 00 00 14 CF BE FF

问题出在第一行,我不能以微秒为单位报告时间,毫秒是我能达到的最远。无论如何可以在 python-can 中编辑该值?或者这是否需要额外的代码来手动进入日志文件并条带化这些值?

谢谢你的时间,

我认为你不能改变它。在python-can的源代码中,它使用%f来产生微秒并且没有用于重新定义的常量变量。

class ASCWriter(BaseIOHandler, Listener):
    ...
    def __init__(self, file, channel=1):
        ...
        # write start of file header
        now = datetime.now().strftime("%a %b %m %I:%M:%S.%f %p %Y")
        self.file.write("date %s\n" % now)
        self.file.write("base hex  timestamps absolute\n")
        self.file.write("internal events logged\n")
        ...

如果您尝试更改 datetime.strftime 中 %f 的格式,同样的情况,它会将数字设置为 '%06d',也没有用于重新定义的常量变量。

def _wrap_strftime(object, format, timetuple):
    ...
                if ch == 'f':
                    if freplace is None:
                        freplace = '%06d' % getattr(object,
                                                    'microsecond', 0)
    ...

我觉得只能改py-can或者datetime的源码,但是不建议!!