ValueError: time data 'LEGACY SYSTEM' does not match format '%H:%M:%S'

ValueError: time data 'LEGACY SYSTEM' does not match format '%H:%M:%S'

我看到这是一个热门问题,所以希望有人能帮助我。然而,我很难过。我的 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 SYSTEM' 与格式“%H:%M:%S”不匹配

您有 header 行。您可以使用 nextcsv.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

如果你有多行,比如说两行,header 行,你可以使用 for 循环来忽略它们:

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