Принятие файла Excel с io-потоком

В настоящее время я работаю над файлом Excel и беру его путь как входной

myObj = ProcessExcelFile("C:\SampleExcel.xlsx") 

конструктор – как

 def __init__(self, filepath): ''' Constructor ''' if not os.path.isfile(filepath): raise FileNotFoundError(filepath) self.datawb = xlrd.open_workbook(filepath) 

но теперь из другого интерфейса я хочу использовать тот же класс, но он не отправляет мне путь к файлу, отправляя мне файл через io-поток, как

 data = req.stream.read(req.content_length) file = io.BytesIO(data) 

теперь эта переменная файла, когда я передаю в своем файле как

 myObj = ProcessExcelFile(file) 

Это дает мне ошибку

 TypeError: argument should be string, bytes or integer, not _io.BytesIO 

Я хочу сделать мой init так, чтобы он мог идти по пути, а также поток io, или если это невозможно, мне нужно, чтобы файл из io-потока был приоритетным

Вам нужно будет изменить свой класс, чтобы разрешить потоки. Передайте поток в open_workbook через file_contents .

 def __init__(self, filepath, stream=False): ''' Constructor ''' if stream: self.datawb = xlrd.open_workbook(file_contents=filepath.read()) else: if not os.path.isfile(filepath): raise FileNotFoundError(filepath) self.datawb = xlrd.open_workbook(filepath) 
  • Python xlrd преобразует целые числа и строки в поплавки
  • python - Ошибка при открытии файла XLS с xlrd после создания того же файла с xlwt
  • Как преобразовать лист в строку? Или мне даже нужно?
  • При извлечении данных из листа excel с использованием python (xlrd package). получение некоторых нежелательных данных тоже
  • python xlutils / xlwt / xlrd / excel - не может изменять скопированные листы
  • Модуль csv записывает время как десятичное
  • Python - Итеративная самопересекая ссылка
  • Работа с вложенными циклами в Python - Параметры?
  • сохранение существующего рабочего листа как html в python
  • Как получить изображение с листа excel с помощью python xlrd
  • Извлечение данных из пакета xlrd
  • Interesting Posts
    Давайте будем гением компьютера.