Python ValueError:时间数据';遗留系统&x27;与格式不匹配';%H:%M:%S';
我知道这是一个很受欢迎的问题,所以希望有人能帮我。一、 然而,我被难住了。我有一个CSV文件,它在第一列中包含一个时间戳,例如Python ValueError:时间数据';遗留系统&x27;与格式不匹配';%H:%M:%S';,python,csv,python-2.6,valueerror,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=',')
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”不匹配。您有一个标题行。您可以使用从
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)
您的csv文件可能有标题行吗?@buran是的,实际上有,所以我需要跳过这些?是的,您需要跳过标题行。或者使用csv.dictReader这基本上就是我所说的。但是,我有两个标题行。有没有办法对多行使用next?