samedi 25 janvier 2020

How to display specific text from txt file for specific users

Could someone help me with getting my program to print user specific information based on which user is logged into the program from info on a txt file. I have a menu in my program which only displays the current users tasks by typing in "vm". This is supposed to show only the tasks assigned to the user. I was able to show the user all tasks for all users but how would I extract only user specific info from a txt file.

The txt file is as follows:

User assigned to task:

admin

Task Title :

Help

Task Description:

Help Granny

Task Due Date:

2020-01-24

Date Assigned:

2020-01-24

Task Completed:

No

...........................

User assigned to task:

johndoe

Task Title :

Walk

Task Description:

Walk the dog

Task Due Date:

2020-01-26

Date Assigned:

2020-01-24

Task Completed:

No

How would I finish my last line of code if I just wanted to print the task for johndoe

The code I have so far is as follows:

import datetime
users = {}
with open ('user.txt', 'rt')as username:
    for line in username:
        username, password = line.split(",")
        users[username.strip()] = password.strip()  # strip removes leading/trailing whitespaces

uinput = input("Please enter your username:\n")
while uinput not in users:
    print("Username incorrect.")
    uinput = input("Please enter a valid username:\n")

if uinput in users:
            print ("Username correct")

with open('user.txt', 'rt') as password:
    for line in password:
        username, password = line.split(",")
        users[password.strip()] = username.strip()  # strip removes leading/trailing whitespaces

uinput2 = input("Please enter your password:\n")
while uinput2 not in users:
    print("Your username is correct but your password is incorrect.")
    uinput2 = input("Please enter a valid password:\n")

if uinput2 in users:
    password2 = ("Password correct")
    print (password2)

if password2 == ("Password correct"):
        menu = (input("\nPlease select one of the following options:\nr - register user\na - add task\nva - view all tasks\nvm - view my tasks\ne - exit\n"))
        if menu == "r" or menu == "R":
                    new_user = (input("Please enter a new user name:\n"))
                    new_password = (input("Please enter a new password:\n"))
                    with open ('user.txt', 'a')as username:
                            username.write("\n" + new_user + ", " + new_password)
        elif menu == "a" or menu == "A":
            task = input("Please enter the username of the person the task is assigned to.\n")
            while task not in username:
                task = input("Username not registered. Please enter a valid username.\n")

            else:
                task_title = input("Please enter the title of the task.\n")
                task_description = input("Please enter the task description.\n")
                task_due = input("Please input the due date of the task. (yyyy-mm-dd)\n")
                date = datetime.date.today()
                task_completed = False
                if task_completed == False:
                    task_completed = "No"
                else:
                    task_completed = ("Yes")
                with open('tasks.txt', 'a') as task:
                    task.write("\nUser assigned to task:\n" + uinput + "\nTask Title :"  + "\n" + task_title + "\n" + "Task Description:\n" + task_description + "\n" + "Task Due Date:\n" + task_due + "\n" + "Date Assigned:\n" + str(date) + "\n" + "Task Completed:\n" + task_completed + "\n") 

        elif menu == "va" or menu == "VA":
            all_tasks = open('tasks.txt', 'r')
            text = all_tasks.read()
            all_tasks.close()
            print(text)
        elif menu == "vm" or menu == "VM"

Aucun commentaire:

Enregistrer un commentaire