在Python 2中比较时间

3
我收到一个包含数值的 .csv 文件,其中一列包含以小时:分钟:秒格式表示的持续时间,例如 06:42:13(6小时42分13秒)。现在我想将这个时间与给定的时间,例如 00:00:00 进行比较,因为我必须以不同方式处理该行中的信息。
time 是我从 .csv 文件中获取的值。
if time == 00:00:00:
  do something
else:
  do something different

这正是我想要的,但显然我的方法行不通。 我以为Python将时间存储为字符串,但当我像这样进行比较时:

if time == "00:00:00":

它也没有起作用。

这是我从 .csv 文件中获取值的方式:

import csv
import_list = []
with open("input.csv", "r") as csvfile:
    inputreader = csv.reader(csvfile, delimiter=';')
    for row in inputreader:
        import_list.append(row)

这个 .csv 文件长这样:

Name; Duration; Tests; Warnings; Errors
Test1; 06:42:13; 2000; 2; 1
Test2; 00:00:00; 0; 0; 0

等等。


2
你注意到值前面的空格了吗?也许你只需要在字符串上执行 .strip() - Klaus D.
3个回答

3

试试这样:

if time == " 00:00:00":
    ...

你的代码开头有一个空格。 或者你可以将你的代码更改为以下内容:
import csv
import_list = []
with open("input.csv", "r") as csvfile:
    inputreader = csv.reader(csvfile, delimiter=';')
    for row in inputreader:
        import_list.append([item.strip() for item in row])

问题中的分隔符是 ';' - M Dennis
我的错误,我从我的文件中使用了它 :) 谢谢! - zipa

2
请改为以下做法:
if time.strip() == "00:00:00":
  do something
else:
  do something different

0

不要使用字符串比较,而是使用内置的 datetime 库创建日期时间对象。使用 datetime.strptime 转换日期字符串。


1
这并不能解决尾随空格的问题,实际上是完全无用的。 - bruno desthuilliers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接