我是 Python 的新手。我想从我的日志文件中减去间隔时间,但问题是我无法将日志文件的毫秒字符串转换为日期时间格式。例如,我有 15:55:05.12345,我想从这个字符串中删除 5.12345 秒,并在 Python 中显示 15.55.00.00000 的结果。我怎样才能做到这一点?目前,我正在使用 python 2.5。
先感谢您。
抱歉,我的意思是我想减去值,例如,删除 00:00:05.1000 所以,我应该得到15:55:00:02345
我是 Python 的新手。我想从我的日志文件中减去间隔时间,但问题是我无法将日志文件的毫秒字符串转换为日期时间格式。例如,我有 15:55:05.12345,我想从这个字符串中删除 5.12345 秒,并在 Python 中显示 15.55.00.00000 的结果。我怎样才能做到这一点?目前,我正在使用 python 2.5。
先感谢您。
抱歉,我的意思是我想减去值,例如,删除 00:00:05.1000 所以,我应该得到15:55:00:02345
>>> import datetime
>>> s = '15:55:05.12345'
>>> datetime.datetime.strptime(s.rpartition('.')[0], '%H:%M:%S').strftime('%H.%M.00.00000')
'15.55.00.00000'
澄清后编辑:
Python标准库无法做到这一点,只能直接使用字符串:
>>> s[:6]+ '00' + s[-6:]
'15:55:00.12345'
我看到你需要从值中减去,所以我会使用 timedelta 对象,因为你可以用它们做数学运算。
>>> value = '15:55:05.123450'
>>> m = re.match('(\d+):(\d+):(\d+\.\d+)', value)
>>> hour = int(m.group(1))
>>> min = int(m.group(2))
>>> sec = float(m.group(3))
>>> now = datetime.timedelta(hours=hour,minutes=min,seconds=sec)
>>> str(now)
'15:55:05.123450'
>>>
>>> delta = datetime.timedelta(seconds=5.1)
>>>
>>> earlier = (now - delta)
>>> str(earlier)
'15:55:00.023450'
>>>