我正在尝试为我正在制作的游戏创建永久帐户,这需要您在能够玩游戏之前创建帐户。我试图弄清楚如何添加它,这是我设法将其添加到文件中最接近的。会发生什么事情,它要求用户输入他们的名字,然后将其保存到我的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”
authUsers = ['David','John','Ali','TestUserName']
我还尝试将第4行的[0]更改为[authUsers],但它返回时显示错误,表明它只能是整数。除此之外,我在这里阅读文件https://developers.google.com/edu/python/lists。谢谢,如果有人可以帮助!
这样的事情怎么样,你的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']
创建一些函数来访问您的用户文件:
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-sourcecode,但你创建了一个配置文件,用户可以读入python列表并进行处理/检查。
配置文件只包含一行中的每个用户,并且可以再次读入您的程序。
该文件看起来像:
John
Mike
Melitta
(每个名称,后跟一个\ n)。