У меня есть задача, где мне нужно запустить определенные функции на основе текстового файла для подсчета определенного текста. Первый набор инструкций я смог сделать сам, поскольку он не основан на пользователях, а представляет собой просто общее количество текстовых элементов в текстовом файле (tasks.txt). Моя проблема, с которой я сталкиваюсь сейчас, заключается в том, как рассчитать определенные вещи из текстового файла, основываясь только на пользователях. В настоящее время существует только одна задача, но если бы мне было назначено более одной задачи и другому пользователю, как бы я выполнял вычисления только для этого конкретного c пользователя? Любой совет будет оценен по достоинству.
Текстовый файл: (tasks.txt)
Пользователь назначен на задачу:
Бобби
Название задачи:
Полет
Описание задачи:
Полет на Луну
Срок выполнения задачи: 2020-04-01
Дата назначения: 2020-03-03
Задание выполнено:
Нет
Номер задания:
1
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) + "%")