Python сценарий времени для файла CSV - PullRequest
0 голосов
/ 30 апреля 2020

Я пишу код для создания файла CSV, чтения данных из X и записи в этот созданный CSV через каждую минуту. Запись данных в реальном времени. Я использовал time.sleep(60.000) и весь код работает хорошо. После выполнения моего скрипта открыл csv файл. У меня есть два из 01:04 в моем столбце времени. Я понимаю причину. Результат был как ниже:

Name; Time: Speed; Value
2020/04/29 00:00; 6.232; 8.123
2020/04/29 00:01; 6.000; 8.000
2020/04/29 00:02; 7.000; 8.546
2020/04/29 00:03; 9.123; 10.246
..............................
2020/04/29 01:04; 10.232; 30.89
2020/04/29 01:04; 11.232; 56.56
2020/04/29 01:05; 15.232; 67.789
2020/04/29 01:06; 18.232; 100.042

Что я хочу написать это время в столбцах, как показано ниже, в течение 24 часов.

2020/04/29 00:00; 6.232; 8.123
2020/04/29 00:01; 6.000; 8.000
2020/04/29 00:02; 7.000; 8.546
2020/04/29 00:03; 9.123; 10.246
..............................
2020/04/29 01:04; 10.232; 30.89
2020/04/29 01:05; 11.232; 56.56
2020/04/29 01:06; 15.232; 67.789
2020/04/29 01:07; 18.232; 100.042
..............................
2020/04/29 23:56; 10.232; 30.89
2020/04/29 23:57; 11.232; 56.56
2020/04/29 23:58; 15.232; 67.789
2020/04/29 23:59; 18.232; 100.042

Пожалуйста, помогите мне решить эту проблему .... Спасибо вы.

1 Ответ

0 голосов
/ 30 апреля 2020

пример того, почему усечение секунд из отметки времени может привести к неожиданным результатам, и как избежать этого путем округления до минуты:

import time
import datetime

t = time.time() # posix timestamp, seconds since the epoch
print(datetime.datetime.utcfromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S'),
      ' <- seconds included')
print(datetime.datetime.utcfromtimestamp(t).strftime('%Y-%m-%d %H:%M'),
      ' <- truncated to minute')

t_rounded_to_min = round(t/60) * 60
print(datetime.datetime.utcfromtimestamp(t_rounded_to_min).strftime('%Y-%m-%d %H:%M:%S'),
      ' <- seconds included')
print(datetime.datetime.utcfromtimestamp(t_rounded_to_min).strftime('%Y-%m-%d %H:%M'),
      ' <- truncated to minute')

# prints e.g.
# 2020-04-30 08:08:31  <- seconds included
# 2020-04-30 08:08  <- truncated to minute
# 2020-04-30 08:09:00  <- seconds included
# 2020-04-30 08:09  <- truncated to minute

Как вы можете видеть в выводе примера, '08: 08 : 31 'становится '08: 08' при усечении, но '08: 09 'при округлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...