如何在python3中计算平均日期时间时间戳

问题描述 投票:0回答:1

我有一个代码,该代码的性能带有时间戳记,我想测量在多台计算机上运行它的平均时间,但是我无法弄清楚如何在python中使用datetime模块。

这是我的程序的外观:

1)我有简单地将日志写入文本文件的代码,其中的时间戳看起来像]

t1=datetime.datetime.now()
...
t2=datetime.datetime.now()
stamp= t2-t1

[那个stamp变量只是写在log.txt中,因此在日志文件中它看起来像0:07:23.160896,所以它看起来像是%H:%M:%S.%f格式。

2)然后运行第二个python脚本,该脚本读取log.txt文件,并以字符串形式读取0:07:23.160896值。

问题是我不知道如何使用该值,因为如果我将其作为日期时间导入,它还会附加并假想的年月日,这是我不想要的,我只是想用小时,分钟,秒和微秒来加起来或取平均值。

例如,我可以在Libreoffice中将其打开,然后将0:07:23.160896添加到0:00:48.065130,这将得到0:08:11.226026,然后除以2将得到0:04:05.613013,而我只是无法在python还是我不知道该怎么做。

我已经尝试了所有方法,但datetime.datetime或datetime.timedelta都不允许这样的简单乘法和除法。如果我只执行y=datetime.datetime.strptime('0:07:23.160896','%H:%M:%S.%f'),它只会给出1900-01-01 00:07:23.160896,而我不能只接受y*2,它不允许进行算术运算,而且如果我将其转换为timedelta,它也会乘以一年,这太荒谬了。我只是想加减乘以时间。

[请帮助我找到一种方法,不仅针对2个变量,还可能甚至是一种方法来计算整个时间戳列表的平均值,例如average(['0:07:23.160896','0:00: 48.065130”,“ 0:00:14.517086”,...])方式。

我只是想要一种方法来计算多个时间戳的平均值,并以相同的格式给出平均值,就像您可以在Libreoffice中选择一列并采用AVERAGE()函数将其给出平均值一样。该列。

python-3.x datetime time timestamp libreoffice-calc
1个回答
0
投票

完成后,首先使用strptime将字符串读入datetime对象:t = datetime.datetime.strptime(single_time,'%H:%M:%S.%f')

之后,将日期字符串的时间部分转换为时间增量,因此可以轻松地计算时间:tdelta = datetime.timedelta(hours=t.hour, minutes=t.minute, seconds=t.second, microseconds=t.microsecond)

© www.soinside.com 2019 - 2024. All rights reserved.