Я настраиваю программу, которая считывает данные из файла CSV, пропускает эти данные через цепочку сравнений, а затем сообщает пользователю, проходят ли эти данные эти тесты.Но я продолжаю получать проблему, когда он читает только последнюю строку файла
Это мой CSV-файл:
1,Gregg,1,True,900,1800
2,Scott,2,False,0,200
3,Trish,3,True,900,1800
4,Rob,4,False,0,200
5,Mat,5,True,900,1800
6,Ben,6,False,0,200
7,Mason,7,True,900,1800
8,Ciaran,8,False,0,200
9,Aaron,9,True,900,1800
10,Dylan,10,False,0,200
11,Allistair,1,True,900,1800
12,Owen,2,False,0,200
13,Mateja,3,True,900,1800
14,Tom,4,False,0,200
15,David,5,True,900,1800
16,Aaron,6,False,0,200
17,Bjork,7,True,900,1800
18,Snorri,8,False,0,200
19,James,9,True,900,1800
20,Madison,5,False,0,200
Это моя структура записи (хранится в record.py):
class User:
# Create a record structure for the user, which will encompass and ID, name, level, presence indicator, opentime and closetime
def __init__(self, usrID, name, lvl, present, opentime, closetime):
self.usrID = usrID
self.name = name
self.lvl = int(lvl)
self.present = bool(present)
self.opentime = opentime
self.closetime = closetime
# return a string of text when the User class is called
def __repr__(self):
if self.present == True:
return "User with ID " + self.usrID + ", with name " + self.name + " has level " + str(self.lvl) + " and is present in the building"
else:
return "User with ID " + self.usrID + ", with name " + self.name + " has level " + str(self.lvl) + " and isn't present in the building"
И это мой код:
def readusrs():
# define f to open testaccounts.csv
f = open('csv/users.csv')
# open testaccounts.csv in csvreader mode
csvFile = csv.reader(f)
# reset out counter
i = 0
# for every row in the csv file, populate our arrays
for row in csvFile:
usrs[i].usrID = row[0]
usrs[i].name = row[1]
usrs[i].plvl = (row[2])
usrs[i].present = bool(row[3])
usrs[i].oentime = row[4]
usrs[i].closetime = row[5]
# incrament i
i = i + 1
# return all of the account data
return usrs
usrs = [record.User("", "", 0, True, "", "")] * 20
usrs = readusrs()
Я ожидал, что данные в программе получатся как в CSV-файле, но вместо этого все будет выглядеть так:
Пользователь с ID 20, с именем Madison, имеет уровень 0 и присутствует в здании