ValueError: данные времени 'LEGACY SYSTEM' не соответствуют формату '% H:% M:% S' - PullRequest
0 голосов
/ 08 декабря 2018

Я вижу, что это популярный вопрос, так что, надеюсь, кто-нибудь может мне помочь.Я, однако, в тупик.У меня есть файл CSV, который содержит отметку времени в первом столбце, например

18:49:45
19:50:31
20:51:26

Мой код указан ниже.Я думаю, что я использую правильное форматирование для 24-часов, минут и секунд.

  import csv
  import time

  with open('file.csv', 'rb')as csvfile:
      filereader = csv.reader(csvfile, delimiter=',')
      for row in filereader:
          date = row[0]
          parsed = datetime.datetime.strptime(date, '%H:%M:%S')

Ошибка: ValueError: данные времени «СИСТЕМА LEGACY» не соответствует формату «% H:% M:% S«

1 Ответ

0 голосов
/ 08 декабря 2018

У вас есть строка заголовка.Вы можете использовать next, чтобы извлечь (а затем отбросить) первую строку из вашего csv.reader итератора:

from datetime import datetime
import csv
from io import StringIO

file = StringIO("""LEGACY SYSTEM
18:49:45
19:50:31
20:51:26""")

# replace file with open('file.csv', 'rb')
with file as csvfile:
    filereader = csv.reader(csvfile, delimiter=',')
    next(filereader)
    for row in filereader:
        parsed = datetime.strptime(row[0], '%H:%M:%S')
        print(parsed)

# 1900-01-01 18:49:45
# 1900-01-01 19:50:31
# 1900-01-01 20:51:26

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

for _ in range(2):
    next(filereader)
...