从CSV读取时Python错误列表索引超出范围

从CSV读取时Python错误列表索引超出范围,python,list,csv,Python,List,Csv,嘿,我正在尝试从CSV文件的列表中读取数据 def Load(): #Loads data from the csv that can be stored in functions global userdata global user userdata = [] f = open('userdata.csv','r') data = csv.reader(f) for row in data: user = [] for field in row: user.a

嘿,我正在尝试从CSV文件的列表中读取数据

def Load(): #Loads data from the csv that can be stored in functions
global userdata
global user
userdata = []
f = open('userdata.csv','r')
data = csv.reader(f)
for row in data:
    user = []
    for field in row:
        user.append(field)
    userdata.append(user)
f.close()
这是我正在循环的登录函数

def Login(): #Login function
global userdata
Load()
global user
print('Please now login to your account')

x = False
while x == False:
    usernameLog = input('Please enter your username: ')

    j = len(userdata)
    for i in range(0,j):
        if usernameLog == userdata [i][0]: #Validates username
            print('Username accepted')

            time.sleep(1)

我的程序成功写入CSV,但如果不抛出此错误,就无法读取CSV。不过,我可能有点傻。

for循环中有一行
user=[]
,因此在添加新值之前,您总是“清理”用户,因此只添加最后一个值,而删除前一个值

您应该将其从循环中删除,就像您对userdata所做的一样


(这就是它看起来的样子,除非您的csv结构完全不同,并且您不需要每个用户一个用户数据)

for循环中有一行
user=[]
,因此您总是在添加新值之前“清理”用户,因此只添加最后一个值,而删除前一个值

您应该将其从循环中删除,就像您对userdata所做的一样


(这就是它的外观,除非您的csv结构完全不同,并且您不需要每一个userdata有一个用户)

此错误在哪一行抛出?如果usernameLog==userdata[i][0],则在第127行:@cᴏʟᴅsᴘᴇᴇᴅ请您再添加一个csv的例子好吗?您的意思是:用户名:bob和密码:password1?列表中的第一项是用户名,第二项是密码@DanielRodríguezOn这是哪一行引发的错误?如果usernameLog==userdata[i][0]:@c,则在第127行ᴏʟᴅsᴘᴇᴇᴅ你能不能再添加一个csv的例子?你的意思是:用户名:bob和密码:password1?列表中的第一项是用户名,第二项是密码@DanielRodríguezThank you the worked。我没想到会这样:谢谢你的工作。我没想到它会这么做:D