关于#python#的问题,如何解决?


from eg321 import admin_login
# 用户登录
def login():
    rNo = input("请输入用户编号:")
    rPwd = input("请输入密码:")
    with open(r'C:\Users\Desktop\python期末大作业2022.2\reader.txt', 'r',encoding="utf-8") as f:
        for line in f:
            reader = line.strip().split()
            if reader[0] == rNo and reader[1] == rPwd:            
                with open(r"C:\Users\Desktop\python期末大作业2022.2\admin.txt", 'r') as f:
                    for line in f:
                        # 比较输入的账户和密码与文件中对应的账户和密码是否匹配
                        if rNo + ',' + rPwd == line.strip():
                            print("登录成功,欢迎管理员 %s" % reader[2])
                            # 进入管理员操作界面
                           
                        else:
                            print("登录成功,欢迎%s!" % reader[2])
                            return reader
    print("登录失败,请检查用户名和密码是否正确。")

# 用户注册
def register():
    rNo = input("请输入用户编号:")
    rPwd = input("请输入密码:")
    rName = input("请输入姓名:")
    rDept = input("请输入单位:")
    rSex = input("请输入性别:")
    rTe = input("请输入电话号码:")
    rRolel = "读者"
    with open(r'C:\Users\Desktop\python期末大作业2022.2\reader.txt', 'a',encoding="utf-8") as f:
        f.write("%s,%s,%s,%s,%s,%s,%s\n" % (rNo, rPwd, rName, rDept, rSex, rTe, rRolel))
    print("注册成功!请登录。")


while True:
    choice = input("请选择功能:1.登录 2.注册 3.退出\n")
    if choice == "1":
        login()
    elif choice == "2":
        register()
    elif choice == "3":
        break
    else:
        print("无效输入,请重新选择。")

为什么会显示我列表为空和索引超过范围呢?我要怎么修改呢?

img

line打印出来看看,应该是空的

打印line看看里面到底是什么,是不是文件里有空行
或者分隔符其实是逗号不是空格