【问题标题】:How to fix while loop problem reading from txt file如何解决从txt文件读取的while循环问题
【发布时间】:2020-01-26 15:53:50
【问题描述】:

有人可以就我目前遇到的问题提供一些建议。我正在编写一个程序来将任务分配给特定用户。所有用户都存储在一个外部 txt 文件中。我想做的是,即使我以一个用户身份登录程序,我也想输入另一个用户的用户名并将任务分配给他们。我遇到的问题是当我要求用户输入他们想要分配任务的人的用户名时,它只在 txt 文件中找到最后一个用户名。如果名称不存在,它会返回我写的错误消息。它只找到txt文件中的最后一个用户

txt文件如下:

管理员,adm1n

鲍比,鲍比1

杰克,杰克1

ie - admin 是 txt 文件中的用户名,adm1n 是密码

代码只接受最后一个用户名 jake 而没有找到其他用户名,当我添加更多用户时,它只找到最后一个添加的用户。

我的代码如下:

with open ('user.txt', 'a')as username:
     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")

【问题讨论】:

    标签: python while-loop notin external-data-source


    【解决方案1】:

    正确的代码是:

    with open( 'user.txt' ) as fin :
        usernames = [i.split(',')[0] for i in fin.readlines() if len(i) > 3]
    
    task = input ('...' )
    while task not in usernames :
        task = input( ' ... ' )
    

    我没有复制消息,你可以自己做。

    【讨论】:

    • 为什么要过滤if len(i) > 3 >
    • @wwii 因为输入中有空行
    • @lenik 您可以直接遍历文件对象以获取行。另外,为什么要检查 i 的长度是否大于 3?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多