Считать данные из csv в список объектов класса - Python - PullRequest
0 голосов
/ 04 декабря 2018

У меня проблемы с выяснением этого.В основном у меня есть файл .csv, в котором 7 сотрудников с именами и фамилиями, идентификатором сотрудника, номером отдела и названием должности.Моя цель состоит в том, чтобы def readFile(employees) принял пустой список (называемый сотрудниками), открыл файл для чтения и загрузил всех сотрудников из файла в список объектов сотрудников (сотрудников).У меня уже есть класс, построенный как:

class Employee:
def __init__(self, fname, lname, eid, dept, title):
    self.__firstName = fname
    self.__lastName = lname
    self.__employeeID = int(eid)
    self.__department = int(dept)
    self.__title = title

У меня есть пара других методов класса, но в основном я не совсем понимаю, как правильно загрузить файл в список объектов.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Я смог понять это.Я открыл файл и затем прочитал строку из него, убрав \ n и разделив мои данные.Я использовал цикл while, чтобы продолжить чтение строк, если это не пустая строка, и добавил его в свой пустой список.Мне также пришлось разделить первый индексированный элемент, так как это были имя и фамилия, в одну строку, и мне нужно было разделить их.

def readFile(employees):
    with open("employees.csv", "r") as f:
        line = f.readline().strip().split(",")
        while line != ['']:
            line = line[0].split(" ") + line[1:]
            employees.append(Employee(line[0], line[1], line[2], line[3], line[4]))
            line = f.readline().strip().split(",")

Скорее всего, он мог бы быть написан лучше и более питонно, но он делает то, что мне нужно.

0 голосов
/ 04 декабря 2018

Почему бы не использовать панд.Таким образом, вы определяете объект pandas сотрудника и используете его индекс для выбора каждого сотрудника и имя каждого столбца для выбора определенного атрибута сотрудника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...