首页 > 解决方案 > 试图将用户输入的变量添加到不同文件中的现有列表中?

问题描述

我正在尝试为我正在制作的游戏创建一个永久帐户,这需要您在玩游戏之前创建一个帐户。我试图弄清楚如何添加它,这是我设法将它添加到文件中最接近的方法。发生的情况是它要求用户输入他们的姓名,然后将其保存到我的 variables.py 第一行的列表中,这就是我试图做的

elif menu == '3':
        enterUsername = input('Please Enter A New Username')
        with open('variables.py', 'a') as text_file:
            print ("{}".format(enterUsername)[0], file=text_file)
        continue

不幸的是,这似乎不起作用,它将名称添加到文件的底部。列表中已经存在名称,因此我想添加它例如

主文件

用户输入 = "TestUserName"

变量.py

authUsers = ['大卫','约翰','阿里','TestUserName']

我还尝试将第 4 行的 [0] 更改为 [authUsers],但它返回一个错误,指出它只能是整数。除此之外,我还阅读了这里的文档https://developers.google.com/edu/python/lists。如果有人可以提供帮助,谢谢!

标签: python

解决方案


创建一些函数来访问您的用户文件:

def addUser(fn, user):
    """Append user to file fn.""" 
    with open(fn,"a") as f:
        f.write(user+"\n")

def getAllUsers(fn):
    """Read file fn, return all users.""" 
    with open(fn,"r") as f:
        users=[x.strip() for x in f.readlines() if x.strip()]
    return users

filename  = "user.txt"

u = getAllUsers(filename);
print(u)                      # []

# add some users
addUser(filename,"John")
addUser(filename,"Mike")
addUser(filename,"Melitta")

u = getAllUsers(filename)     
print(u)                      # ['John', 'Mike', 'Melitta']

本质上,您不会修改您的 python 源代码,而是创建一个包含用户的配置文件,您可以将其读入 python 列表并进行处理/检查。

配置文件仅在一行中包含每个用户,并且可以再次读入您的程序。


该文件如下所示:

John
Mike
Melitta

(每个名称,后跟一个 \n)。


推荐阅读