使Python无法识别列表的新增内容

时间:2018-03-29 20:01:00

标签: python

我正在编写一个Python脚本,它接受用户名并确定它是否是有效的用户名。如果它与任何其他用户名不同并且大于6个字符,则会将其添加到用户名列表中。如果用户名短于6个字符,或者与现有用户名相同,则程序结束并通知用户无效名称。我的问题是,如果我输入一个新的用户名,它会被添加到列表中,然后再次输入相同的用户名,它不会通知我它已经被占用了。

name_list = []
username = input("input your new username: ")
if len(username) < 6:
    print('username is too short')
elif len(username) >6:
    if username in name_list :
        print('username taken')
    elif username not in name_list:
        name_list.append(username)

假设我输入JonnyBoy作为用户名;它会被添加到name_list中。如果我然后使用相同的用户名再次运行程序,则无法识别它与现有用户名相同。

1 个答案:

答案 0 :(得分:1)

每次重新启动脚本时,列表都会重置。您需要将列表存储在文件中。下次运行脚本时读取该文件以获取旧列表。 看看这篇文章:http://www.pythonforbeginners.com/files/reading-and-writing-files-in-python

在这种情况下,我认为json模块会做得很好。 只需致电json.dump(name_list, file)即可存储该列表。

将列表写入文件的示例:

with open("somefile.txt", "w") as file:
    json.dump(name_list, file)

阅读它:

with open("somefile.txt") as file:
    name_list = json.load(file)