python 3 - 写一个注册的程序,账号和密码都存在文件里面

choice = input('请输入你的选择:1,注册2、删除用户3、登录')
#注册
输入
账号
密码
密码确认
# #需要校验用户是否存在,两次输入的密码,是否一致,为空的情况
#账号和密码都存在文件里面
#删除
输入一个用户名
#需要校验用户是否存在
#登录
输入账号密码登录

choice = input("请输入您的选择:1.注册2.删除用户 3.登录").strip()
f = open("register.txt",'a+')
f.seek(0)
allUser = []
for user in f.readlines():
    uname = str(user).split(',')[0] #从文件中取int("username:"+uname)
   
allUser.append(uname)
print("alluser:"+str(allUser))
if choice == '1':
    username = input("please input username: ").strip()
    if username in allUser:
        print("该用户名已经被注册!")
    else:
        pwd = input("please input your password:")
        pwd2 = input("please confirm your password:")
        if pwd != pwd2 or pwd.strip()=="" or pwd2.strip()=="":
            print("两次输入密码需保持一致且密码不能为空!")
        else:
            f.write(username+','+ pwd+'\n')
elif choice == '2':
    deluser = input("please input the name you want to delete:")
    if deluser in allUser:
        print("==========")
        #找到该用户所在的行数
       
lineNum=allUser.index(deluser)
        print("Linenum:"+str(lineNum))
        f.seek(0)
        lines = f.readlines()
        lines[lineNum] ="" #删除文件中该行内容
       
print(lines)
        with open("register.txt","w") as f1:
            for line in lines:
                f1.write(line)
    else:
        print("该用户不存在!")
elif choice == '3':
    user = input("please input your name:")
    passwd = input("please input your password:")
    print("登录成功")
else:
    print("输入有误!")

 

 总结:

1. 

uname = str(user).split(',')[0] #从文件中取int("username:"+uname)

因为文件中每行读出的内容是个list,同时包含用户名和密码,所以首先需要把用户名单独取出来,放到一个list中,以备后面使用

 

2. 

lineNum=allUser.index(deluser)

删除用户时,需要找到该用户所在的行数,从文件中删除该行。因为username存在一个list中,且是按照读取的顺序存下来的,所以找到usernam在allUser这个list中的位置,即是找到该username在文件中所在的行数

 

3. 

f.seek(0)
lines = f.readlines()
lines[lineNum] ="" #删除文件中该行内容
print(lines)
with open("register.txt","w") as f1:
    for line in lines:
        f1.write(line)

删除改行,需要将改行的内容变为空,同时将删除该行内容后的lines重新写入文本中。若没有重新写入,显示的仍是原来的文本。

 

posted @ 2018-04-11 17:35  julieyuan  阅读(827)  评论(0编辑  收藏  举报