У меня есть код с отметкой времени производительности, и я хочу измерить среднее время, которое потребовалось для его запуска на нескольких компьютерах, но я просто не могу понять, как использовать модуль datetime
в python .
Вот как выглядит моя процедура:
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
в виде строки.
Проблема в том, что я не знаю, как работать с этим значением, потому что, если я импортирую его как datetime, оно также добавит к нему воображаемый год, месяц и день, чего я не хочу, я просто хочу работать с часами, минутами, секундами и микросекундами, чтобы сложить их или сделать среднее.
Например, я могу просто открыть его в 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
в таком виде, он не позволяет выполнять арифметические операции c, плюс, если я конвертирую его в timedelta, он будет также умножьте год, что смешно. Я просто хочу сложить, вычесть и умножить время.
Пожалуйста, помогите мне найти способ сделать это, и не только для двух переменных, но, возможно, даже способ вычислить среднее значение для всего списка временных меток, например средний (['0: 07: 23.160896', '0: 00: 48.065130', '0: 00: 14.517086', ...]) способ.
Мне просто нужен способ вычислить среднее многих временных меток и выдать среднее значение в том же формате, точно так же, как вы можете просто выбрать столбец в Libreoffice и воспользоваться функцией AVERAGE (), которая выдаст среднюю временную метку в этом столбце.