我一直在试图弄清楚如何在Python中完成这一周的大部分工作,但是找不到任何人专门回答这个问题。我有一个日志文件,其中每一行都是一个带有事件的时间戳,如下所示:
HH:MM:SS.xxxxxxx \t Event
HH:MM:SS.xxxxxxx \t Event
HH:MM:SS.xxxxxxx \t Event
...
我已设法将所有这些放入列表中,并想出如何操作该列表。我无法弄清楚的是如何将时间戳(从0开始(好,一秒钟,真的,但大致为0))转换为毫秒(我可以在Excel中执行的操作)。所以每个时间戳只代表经过的时间,而不是实际的时间。最后的七个x对我来说毫无意义,所以不确定它们是什么。
是否有人可以使用代码片段将此时间戳转换为毫秒?
答案 0 :(得分:1)
七个x的七个实际x或者它们是几秒的格式表示吗? 如果输入数据的准确性只有几秒钟,我就无法看到如何计算差异到毫秒。
我建议你阅读python中的时间处理文档(日期时间等)
我拼凑了以下内容:
>>> from datetime import datetime, timedelta
设置2个时间字符串 - 希望像那些'你有。
>>> times1="12:45:31.123456"
>>> times2="12:45:31.654321"
使用datetime.strptime将它们转换为时间对象
>>> timet1 = datetime.strptime(times1,"%H:%M:%S.%f")
>>> timet2 = datetime.strptime(times2,"%H:%M:%S.%f")
减去它们以获得时间差值
>>> t_delta = timet2 - timet1
>>> str(t_delta)
'0:00:00.530865'
注意:我必须省略时间字符串中的第7位数字(假设它们不是x' s)因为strptime只接受6个字符的微秒(足够明显)。如果他们是实际的x只是使用' .xxxxxxx'在strptime和datetime的格式字符串的末尾将很乐意为你抛弃它们。 如果要将差异中的秒,分和小时转换为毫秒,则必须直接处理时间对象元组。 (请参阅datetime和许多其他SO线程的文档)
答案 1 :(得分:0)
可能,如果时间戳是datetime.datetime.now()格式化的,那么你可以从.microsecond获得它。
时间= datetime.datetime.now()
打印Time.microsecond
会给你更多的时间范围,到微秒级别。