我正在尝试为自己制作的游戏创建永久帐户,这需要您在玩游戏之前创建一个帐户。我试图弄清楚如何添加它,这是我设法将其添加到文件中的最接近方法。发生的是,它要求用户输入他们的名字,然后将其保存到变量第一行的列表中。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”
authUsers = ['David','John','Ali','TestUserName']
我也尝试将第4行的[0]更改为[authUsers],但返回错误,提示它只能是整数。除此之外,我在https://developers.google.com/edu/python/lists处阅读了文档。谢谢任何人的帮助!
答案 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']