尝试将用户输入的变量添加到其他文件中已存在的列表中吗?

时间:2018-09-15 20:35:02

标签: python

我正在尝试为自己制作的游戏创建永久帐户,这需要您在玩游戏之前创建一个帐户。我试图弄清楚如何添加它,这是我设法将其添加到文件中的最接近方法。发生的是,它要求用户输入他们的名字,然后将其保存到变量第一行的列表中。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

不幸的是,这似乎不起作用,并且将名称添加到了文件的底部。列表中已经有现有名称,所以我想添加它

main.py

用户输入=“ TestUserName”

variables.py

authUsers = ['David','John','Ali','TestUserName']

我也尝试将第4行的[0]更改为[authUsers],但返回错误,提示它只能是整数。除此之外,我在https://developers.google.com/edu/python/lists处阅读了文档。谢谢任何人的帮助!

2 个答案:

答案 0 :(得分:0)

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

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)。

答案 1 :(得分:-2)

这样的事情,您的variables.py仅包含auth_users吗?如果不给他们自己的auth_users.py,则可以导入它们以更新它们并重写它们以检出它们:

from variables import auth_users

username = input('Please Enter A New Username: ')
auth_users.insert(0, username)
something = "auth_users = {}".format(auth_users)
with open('variables.py', 'w') as f:
    f.write(something)

之前:

(xenial)vash@localhost:~/python/stack_overflow$ cat variables.py
auth_users = ['David', 'John', 'Ali', 'TestUserName']

之后:

(xenial)vash@localhost:~/python/stack_overflow$ cat variables.py
auth_users = ['Vash', 'David', 'John', 'Ali', 'TestUserName']

第二次运行:

(xenial)vash@localhost:~/python/stack_overflow$ cat variables.py
auth_users = ['Stampede', 'Vash', 'David', 'John', 'Ali', 'TestUserName']