试图在列表中查找对象,但它不起作用

时间:2020-07-08 19:41:44

标签: python list

因此,我的项目包括尝试从该文件(data.txt)中获取所有数据,并进行过滤以查找上周的值,因此我使用datetime.timedelta来获取包含所有日期的列表。当前日期和前6天,但是当我尝试在文件中查找数据的日期并将其与“上周列表”中的日期进行比较时,即使它们都是字符串并且都是以相同的格式YY-MM-DD。它们是相同的,但始终返回false。这是我的第一篇文章,所以也许有点令人困惑,但是如果您能帮助我,那将是很棒的。

这是data.txt,它包含会话的持续时间,会话的开始时间,结束时间和当前日期。

0.6351542472839355;16:12:46.275692;16:12:46.910832;2020-07-08
0.24894213676452637;16:12:47.867543;16:12:48.116485;2020-07-08
0.2877843379974365;16:12:48.824725;16:12:49.112509;2020-07-08
200.29360198974609375;16:12:49.754576;16:12:50.048178;2020-07-08
200.25270724296569824;16:12:50.636086;16:12:50.888793;2020-07-08
3000.2298729419708252;16:12:51.469012;16:12:51.698880;2020-07-08

SESSION DURATION ; START TIME ; END TIME ; DATE
def last_week_hours():
    today = date.today()
    lastweekhours = 0
    weeklist = []
    for i in range(0,7):
        wdate = today - timedelta(days=i)
        weeklist.append(str(wdate))
    db = open('data.txt', 'rt')
    for line in db:
        info = line.split(';')
        sdate = info[3]
        sduration = info[0]
        if sdate in weeklist:
            print('sdate is in weeklist')
            lastweekhours += sduration

1 个答案:

答案 0 :(得分:0)

我建议您也许在您的“ for db:db:”循环中执行sdate.strip(),以删除可能会或可能不会干扰相等性检查的任何前导或尾随空格。