簡體   English   中英

比較列表中的項目

[英]Comparing items in a list

我有一個文本文件,其中包含任務分配的截止日期和日期以及它們是否完成。 我想寫一段代碼,可以通過文件go判斷任務是否逾期。 我已經將文本文件中的每一行都變成了一個列表,我正在嘗試檢查截止日期是否超過了當前日期,以及評論任務是否完成的那一行是否為“否”。

for line in rdfile:
    line.strip("\n")
    thetasks = line.split(", ")

截止日期是列表中的倒數第二項,用於指定任務是否完成的 No 是列表中的最后一項。

假設這條線是:

Admin, Assign initial tasks, 14 Apr 2020, 02 Apr 2020, No

使用上面的代碼后,我有一個列表,其中包含上面行中的項目,由逗號和空格分隔。

根據您的示例並假設您的行格式保持不變,您可以使用它。

from datetime import datetime

line = "Admin, Assign initial tasks, 14 Apr 2020, 02 Apr 2020, No"
splitLine = line.split(',')
date_obj = datetime.strptime(splitLine[2].lstrip(), '%d %b %Y')
print(date_obj.strftime('%d-%m-%Y'))
yes_no = splitLine[4].lstrip()
print(yes_no)

這個 function 將完成這項工作:

from datetime import datetime

def is_overdue(task):
    splited_line = [elem.strip() for elem in task.split(",")]

    # Datetime object with current datetime
    now = datetime.now()

    # Datetime object with due datetime
    due_datetime = datetime.strptime(splited_line[-2], '%d %b %Y')

    # Boolean value representing task completion 
    is_finished = (splited_line[-1] != "No")

    return (not is_finished) and (due_datetime < now)


line = "Admin, Assign initial tasks, 14 Apr 2020, 02 Apr 2020, No"

print(is_overdue(line))
# True

function 將檢查給定行的兩件事:

  • 如果任務的截止日期在過去: (due_datetime < now)
  • 如果任務完成(我想,除了“否”之外的所有內容都意味着任務在這里完成)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM