Python连接属于同一个人的已删除信息

Python连接属于同一个人的已删除信息,python,list,loops,dictionary,Python,List,Loops,Dictionary,我已经被这件事困扰了好几天了,现在我的脑子都转不过来了 假设我有以下信息: Makaviwe, Coding 4, Code Cap 4, 31 Mar 2021, 02 Apr 2021, No Sanele, Coding, Coding, 01 Apr 2021, 29 Apr 2021, Yes Aphelele, Code, 1, 01 Apr 2021, 03 Apr 2021, No Sanele, Code, Code Review, 08 Apr 2021, 25 Jun 2

我已经被这件事困扰了好几天了,现在我的脑子都转不过来了

假设我有以下信息:

Makaviwe, Coding 4, Code Cap 4, 31 Mar 2021, 02 Apr 2021, No 
Sanele, Coding, Coding, 01 Apr 2021, 29 Apr 2021, Yes
Aphelele, Code, 1, 01 Apr 2021, 03 Apr 2021, No
Sanele, Code, Code Review, 08 Apr 2021, 25 Jun 2021, No
这是文本文件中的信息,包含用户名、任务标题、任务描述、任务发布日期、任务到期日期、完成状态(是=已完成)。按这个顺序

我需要回答这些问题,并以易于阅读的方式呈现它们

  • 已注册用户的用户总数
  • 已生成和跟踪的任务总数
对于每个用户,还可以描述:

  • 分配给该用户的任务总数

  • 已分配给该用户的任务总数的百分比是多少

  • 分配给该用户的任务已完成的百分比是多少

  • 分配给该用户的任务仍必须完成的百分比是多少

  • 分配给该用户的任务中有多少百分比尚未完成且已过期

这就是我能做到的程度,我不知道如何获取其他信息,尤其是因为每个用户可以有多个条目。我怎样才能把这些结合起来呢

def rw_file_opener (which_file):
    # if & elif statement, where the specified file will be opened
    if which_file == "user_info":

        user_info = open("user.txt", "r+")

        return user_info

    elif which_file == "tasks_info":

        task_info = open("tasks.txt", "r+")

        return task_info

tasks = rw_file_opener("tasks_info") #Opening a file with tasks and username

users = rw_file_opener("user_info") #Opening a file with usernames and passwords

#Counting the number of users registered
user_count = 0

for no_of_users in users:

    user_count += 1

#Counting the number of tasks registered
task_count = 0

for no_of_tasks in tasks:

    task_count += 1

# Printing the infomation in a user friendly manner
print(f"The Total number of tasks generated is: {task_count}")

print(f"The Total number of users registered is: {user_count}")

print("")

tasks.seek(0)

# Figuring out how many tasks each user has

names = []

from collections import Counter

for element in tasks:

    task_split = element.split(", ")
    
    task_username = task_split[0]
    
    task_status = task_split[5]
    
    names.append(task_username)
    
    names_dictionary = Counter(names)

# Presenting the information in an easy to read manner
for key, value in names_dictionary.items():

    print(f'''Username: {key}
Total number of tasks: {value}''')
    
    perc = value/task_count*100 # Calculating the percentage of the total number of tasks for each user
    
    print(f'''The percentage of the total number of tasks: {perc}
''')

如果有人能提供帮助,我真的很困惑,我对代码还不熟悉。

这里有一些代码可以帮助您开始(从文件中加载数据并打印一些信息):

从日期时间导入日期时间
#加载数据:
数据=[]
打开(“your_file.txt”、“r”)作为f_in:
对于地图中的线条(str.strip,f_in):
如果不是直线:
持续
用户名、标题、描述、已发布、到期、状态=[
l、 行中l的strip()。拆分(“,”)
]
data.append(
{
“用户名”:用户名,
“头衔”:头衔,
“描述”:描述,
“已发布”:datetime.strTime(已发布,“%d%b%Y”),
“到期”:datetime.strTime(到期,“%d%b%Y”),
“地位”:地位,
}
)
# 1. 注册用户总数(假设用户名是唯一的)
num=len(设置(数据中d的d[“用户名”]))
打印(“注册用户总数:”,num)
# 2. 任务总数(假设任务标题是唯一的)
num=len(设置(数据中d的d[标题])
打印(“任务总数:”,num)
# 3. 分配给该用户的任务总数:
tmp={}
对于数据中的d:
tmp.setdefault(d[“用户名”],[])。追加(d[“标题”])
对于tmp中的用户:
打印(“分配给用户{}的总任务数为{}”。格式(user,len(tmp[user]))
# 4. 已分配给该用户的任务总数的百分比是多少?
任务总数=len(设置(数据中d的d[“title”]))
对于tmp中的用户:
印刷品(
“已分配给用户{}的任务总数的百分比为{:.2f}%.”格式(
用户,(len(tmp[用户])/总任务)*100
)
)
# ...
印刷品:

注册用户总数:3
任务总数:3
分配给用户Makaviwe的任务总数为1
分配给用户Sanele的任务总数为2
分配给用户Aphelle的任务总数为1
已分配给用户Makaviwe的任务总数的百分比为33.33%
已分配给用户Sanele的任务总数的百分比为66.67%
已分配给用户Aphelle的任务总数的百分比为33.33%

非常感谢您,其他一切都可以是唯一的,但用户名不是唯一的,我的意思是,例如Andrej可以为他们分配多个任务,这仍然有效吗?@snlonline当然可以。在我的示例中,我打印了
分配给用户Sanele的总任务数为2
,因此可以将多个任务分配给一个名称。啊,我看到了,我将查看代码,看看它是如何工作的,希望我能够回答其他问题,再次感谢您,所以muchI必须说我现在更困惑了。代码中充满了我以前从未见过或学习过的函数,试图理解它们的文档没有太多的功能,因此输出布局对于大量用户来说并不理想。我的布局会更好。