как осуществить чтение csv файла не с первой строки
у меня есть 20 записей в csv-файле: данные на каждого человека в отдельной строке. Как мне выбирать, из какой строки брать данные?
вот кусок кода, в который нужно добавить выбор строк для чтения
with open(csv_file, newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
next(reader)
for row in reader:
data_1 = row[0]
data_2 = row[1]
data_3 = row[2]
data_4 = row[3]
data_5 = row[4]
data_6 = row[5]
data_7 = row[6]
data_8 = row[7]
data_9 = row[8]
data_10 = row[9]
data_11 = row[10]
data_12 = row[11]
data_13 = row[12]
data_14 = row[17]
t2.cell(0, 0).text = str('Фамилия\nИмя\nОтчество\nПол\n')
t2.cell(0, 1).text = str(data_1 + '\n' + data_2 + '\n' + data_3 + '\n' + data_4)
я чуть-чуть продвинулся
переходить на следующую строку можно при помощи повторения команды next(reader)
выглядит это примерно так:
with open(csv_file, newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
next(reader)
next(reader)
next(reader)
next(reader)
for row in reader:
data_1 = row[0]
data_2 = row[1]
data_3 = row[2]
data_4 = row[3]
data_5 = row[4]
data_6 = row[5]
data_7 = row[6]
data_8 = row[7]
может, кто знает как превратить это в какой-нибудь цикл, который будет либо сам перескакивать на следующую строку, либо при изменении одной цифры я бы мог менять строки?
Ответы (1 шт):
Я нашел решение: при помощи команды next(reader)
можно переходить на следующую строку.
Я сделал цикл с этой командой и вот что получилось:
with open(csv_file, newline='', encoding='utf-8') as csvfile:
reader = csv.reader(csvfile)
for i in range(5):
next(reader)
for row in reader:
data_1 = row[0]
data_2 = row[1]
data_3 = row[2]
data_4 = row[3]
data_5 = row[4]
data_6 = row[5]
data_7 = row[6]
data_8 = row[7]
data_9 = row[8]
data_10 = row[9]
data_11 = row[10]
data_12 = row[11]
data_13 = row[12]
data_14 = row[17]
break
в строке for i in range
цифра и обозначает строку, из которой берутся данные.
т.к. в цикле результат на одно число меньше, то при цифре 10
мы бы получали 9
строку. но в csv
-файле первая строка - это обычно заголовок (фамилия, имя, отчество), поэтому цифра в цикле совпадает с выбранной строкой.