Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:时间数据';遗留系统&x27;与格式不匹配';%H:%M:%S';_Python_Csv_Python 2.6_Valueerror - Fatal编程技术网

Python ValueError:时间数据';遗留系统&x27;与格式不匹配';%H:%M:%S';

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=',')

我知道这是一个很受欢迎的问题,所以希望有人能帮我。一、 然而,我被难住了。我有一个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”不匹配。

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