ValueError:时间数据“ LEGACY SYSTEM”与格式“%H:%M:%S”不匹配

时间:2018-12-07 21:45:36

标签: python csv python-2.6 valueerror

我看到这是一个受欢迎的问题,因此希望有人可以帮助我。但是,我很沮丧。我有第一列中包含时间戳的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:时间数据“旧版系统”与格式“%H:%M:%S”不匹配

1 个答案:

答案 0 :(得分:1)

您有一个标题行。您可以使用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

如果您有多个标题行(例如两个),则可以使用for循环来忽略它们:

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