Ошибка при попытке прочитать файлы Excel в цикле - PullRequest
0 голосов
/ 10 октября 2019

Я храню данные каждой тренировки (в качестве личного тренера) с переменными обучения. Я отправляю копию файла .xlsx с указанием имени клиента, дня и месяца.

Однако я получаю сообщение об ошибке при попытке чтения с помощью панд в цикле. Цикл состоит в том, чтобы прочитать каждый файл в каталоге и сохранить его в файле .npy в конце дня.

Часть кода, с которой у меня возникают проблемы:

import os
pasta = os.listdir('path')
if pasta[-1] == 'desktop.ini':
        pasta.remove(pasta[-1])
os.chdir('path')
x = 0
while x < len(pasta):
        ler = pd.read_excel(pasta[x])
        ler = np.array(pd.read_excel(pasta[x]))
        string = pasta[x].strip('.xlsx')
        string = string.replace('_', '1')
        y = 0
        #Loop to remove the data to get the directory
        while y < len(string):
            if string[-1].isnumeric() == True:
                string = string.strip(string[-1])
            y = y + 1
        np.save(path, ler)
        x = x + 1

Я получаю следующее сообщение об ошибке:

xlrd.biffh.XLRDError: неподдерживаемый формат или поврежденный файл: ожидаемая запись BOF;найдено b '[. ShellC'

У меня НИЧЕГО нет чтения файлов .xlsx, когда код не находится в цикле. Я попытался открыть его точно так же перед циклом, и ошибка возникает только в цикле.

1 Ответ

0 голосов
/ 10 октября 2019

Я думаю, проблема в том, что у вас могут быть файлы не в формате Excel. Вам нужно проверить файлы, заканчивающиеся на 'xlsx'

import os
pasta = os.listdir('path')
if pasta[-1] == 'desktop.ini':
        pasta.remove(pasta[-1])
os.chdir('path')
x = 0
while x < len(pasta):
    if pasta[x].endswith('xlsx'):
        ler = pd.read_excel(pasta[x])
        ler = np.array(pd.read_excel(pasta[x]))
        string = pasta[x].strip('.xlsx')
        string = string.replace('_', '1')
        y = 0
        #Loop to remove the data to get the directory
        while y < len(string):
            if string[-1].isnumeric() == True:
                string = string.strip(string[-1])
            y = y + 1
       np.save(path, ler)
       x = x + 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...