特定のテキストをカウントするために、テキスト ファイルに基づいて特定の関数を実行する必要があるタスクがあります。ユーザーベースではなく、テキストファイル (tasks.txt) 内のテキスト項目の一般的なカウントにすぎないため、最初の一連の指示は自分で行うことができました。私が今抱えている問題は、ユーザーのみに基づいてテキスト ファイルから特定のものを計算する方法です。現在、タスクは 1 つしかありませんが、複数のタスクが別のユーザーに割り当てられている場合、その特定のユーザーのみについて計算を行うにはどうすればよいでしょうか? アドバイスをいただければ幸いです。
テキスト ファイルは次のとおりです: (tasks.txt)
タスクに割り当てられたユーザー:
ボビー
タスクのタイトル:
飛ぶ
タスクの説明:
月に飛ぶ
タスクの期日: 2020-04-01
割り当てられた日付: 2020-03-03
完了したタスク:
いいえ
タスク番号:
1
タスクの最初のセット: (完了)
生成されたタスクの総数
完了したタスクの総数。
未完了のタスクの総数。
完了していない期限切れのタスクの総数。
未完了のタスクの割合。
期限切れのタスクの割合。
2 番目のタスク セット (ユーザー ベース):
そのユーザーに割り当てられたタスクの総数。
タスクの総数のうち、そのユーザーに割り当てられている割合は?
そのユーザーに割り当てられたタスクのうち、完了した割合は?
そのユーザーに割り当てられたタスクのうち、完了しなければならないタスクの割合は?
そのユーザーに割り当てられたタスクのうち、まだ完了しておらず期限が過ぎているタスクの割合は?
これまでの私のコード:
data2 = open('tasks.txt').read()
count3 = data2.count('Task Title')
count4 = data2.count('Yes')
count5 = data2.count('No')
with open("tasks.txt", "r")as f5:
today = datetime.datetime.today()
overdue = 0
for line in f5:
if not line.startswith('Task Due Date'): continue
field, value = line.split(':')
if field == 'Task Due Date':
if datetime.datetime.strptime(value.strip(), '%Y-%m-%d') < today:
overdue = overdue + 1
ab = (overdue/count3)*100
abb = (count5/count3)*100
print("Total number of tasks: " + str(count3) + "\nTotal number of completed tasks: " + str(count4) + "\nTotal number of incomplete tasks: " + str(count5) + "\n" +
"The percentage of overdue tasks is: " + str(ab) + "%" + "\n" + "The percentage of incomplete jobs is: " + str(abb) + "%")
num_lines = sum(1 for line in open('user.txt'))
print("The number of registered users is: " + str(num_lines) + "\n")
data3 = open('tasks.txt','r').read()
usr_check = input("Please input a user name to write details of that user.\n")
count6 = data3.count(usr_check)
count7 = (count6/count3)*100
print("The user " + str(usr_check) + " has total tasks of: " + str(count6) + "\n" + str(usr_check)+ "'s" + " " + "percentage of total tasks is: "
+ str(count7) + "%")