#python #class #openpyxl
#python #класс #openpyxl
Вопрос:
У меня есть файл xlsx, который открывается с помощью Openpyxl. Каждая строка содержит student_id, first_name, second_name, parent_name и parent_email.
Я создал метод под названием Students
Я хочу, чтобы программа брала каждую строку и присваивала ее методу, например.
Students(student_id = ['A -row number'], first_name = ['B -row number'], second_name = ['C - row number] ...etc
чтобы он перебирал всех моих учеников и автоматически добавлял их
уверен, что ответ заключается в цикле, таком как:
for row in ws.rows:
Ответ №1:
Этот способ был намного лучше. Отключите Openpyxl, откройте его из файла csv. В файле csv у меня есть строки, каждый отдельный бит информации в столбцах A, B, C, D, E
например. A1 = Поттер, Гарри B1 = Поттер C1 = Гарри … и т. Д
import csv
#sorts all the student data into a class
class Students():
def __init__(self,student_id, first_name,second_name,student_parent,parent_email):
self.student_id = student_id
self.first_name = first_name
self.second_name = second_name
self.student_parent = student_parent
self.parent_email = parent_email
def __repr__(self):
return self.student_id " " self.first_name " " self.second_name " " self.student_parent " " self.parent_email
student_list = []
#opens the csv file, takes out the information and saves them in the Student Class
student_file = open('student_list.csv')
student_file_reader = csv.reader(student_file)
for row in student_file:
row_string = str(row)
row_parts1,row_parts2,row_parts3,row_parts4,row_parts5 = row_string.split(',')
student_list.append(Students(row_parts1,row_parts2,row_parts3,row_parts4,row_parts5))
… и вот оно, все в форме объектов в идеальном списке.
Комментарии:
1. Недавно я задал 4 вопроса Stack Overflow и все чаще обнаруживаю, что сообщество становится более придирчивым. на 3 из 4 моих вопросов я ответил сам и, надеюсь, помогу другим. Люди из SO, пожалуйста, помогите новичкам, если вам нужно понизить голос, скажите, почему у вас есть в противном случае, это так же полезно, как tutting. Кроме того, если вы собираетесь просто критически отнестись к вопросу, а не предлагать помощь, вы отвлекаетесь от темы … это похоже на то, что кто-то спрашивает вас о времени, а вы отвечаете, что часы доступны в магазинах.