Python Проблема списка индексов с данными времени из Excel - PullRequest
0 голосов
/ 18 марта 2020

Мой код выглядит следующим образом

import openpyxl

l = list()
x = 0
filename = 'E:/Arsh/Bus_Timetable.xlsx'

# opening the xlsx file
xlsx = openpyxl.load_workbook(filename)

# opening the active sheet
sheet = xlsx.active

# getting the data from the sheet
data = sheet.rows

# putting data in the list
for row in data:
    l.append(row)

# accessing 2 dimensional list
for i in range(len(l)):
    btime = str(l[i][0].value)  # incoming value 00:17:00
    btime = btime.split(':') 
    print(btime)  # this is printing ['00', '17', '00'] i.e. **there are 3 values in the list**
    print(btime[0])  # this is printing 00
    print(btime[1])  # this is generating error "list index out of range" There are 3 values why the error???

Файл Excel содержит около 100 строк и 3 столбца, первый столбец - формат времени. Я храню все данные в списке. Когда я получаю доступ к двумерному списку в l oop, как в коде, хотя список имеет 3 значения, я не могу получить доступ ко второму значению, как в коде btime[1]. Я новичок в Python и действительно не знаю, когда длина списка равна 3, почему я не могу получить доступ ко второму значению.

1 Ответ

0 голосов
/ 18 марта 2020

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

Также я удалил несколько строк, в которых вы можете дублировать данные

import openpyxl
import time

## opening the xlsx file
filename = 'E:/Arsh/Bus_Timetable.xlsx'
xlsx = openpyxl.load_workbook(filename)

## opening the active sheet
sheet = xlsx.active

#Access each row containing a list of cells
for row in sheet.rows:
    if row[0].row == 1: continue # Skip header row, if you dont have a header row you can remove this
    btime = time.strptime(str(row[0].value), "%H:%M:%S")
    print("Hour: {} Minute: {} Second: {}".format(btime.tm_hour,btime.tm_min,btime.tm_sec))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...