我看到这是一个受欢迎的问题,因此希望有人可以帮助我。但是,我很沮丧。我有第一列中包含时间戳的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”不匹配
答案 0 :(得分:1)
您有一个标题行。您可以使用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)