Jadi proyek saya terdiri dari mencoba mendapatkan semua data dari file ini (data.txt) dan memfilter untuk menemukan nilai minggu lalu, jadi saya menggunakan datetime.timedelta untuk mendapatkan daftar dengan semua tanggal dari hari ini dan 6 hari sebelumnya, tetapi ketika saya mencoba mencari tanggal data dalam file dan membandingkannya dengan tanggal di 'daftar minggu lalu', itu tidak berfungsi, meskipun keduanya adalah string dan keduanya sama pola YY-MM-DD. Mereka identik tetapi selalu mengembalikan false. Ini adalah posting pertama saya jadi mungkin agak membingungkan, tetapi jika Anda dapat membantu saya, itu akan sangat bagus.

Inilah data.txt, berisi durasi sesi, waktu mulai, waktu berakhir, dan tanggal sesi saat ini.

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
lucascode 8 Juli 2020, 22:41

1 menjawab

Jawaban Terbaik

Saya akan menyarankan mungkin melakukan sdate.strip() di loop 'for line in db:' Anda, untuk menghapus spasi putih awal atau akhir yang mungkin atau mungkin tidak mengacaukan pemeriksaan kesetaraan.

0
Ammon Taylor 8 Juli 2020, 19:49