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

时间:2018-03-09 09:24:41

标签: 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.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但是没有从中读取而没有丢失此错误。我可能只是愚蠢。

1 个答案:

答案 0 :(得分:2)

你在for循环中有user = []行,所以在添加新值之前总是“清理”用户,所以只添加最后一个值,并删除前一个值。

你应该把它从循环中取出,就像你使用userdata一样。

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