Python Throwing "'utf8' не может декодировать байт 0xd0 в позиции 0" Ошибка

Я пытаюсь загрузить текущий существующий листок и импортировать текстовый файл (значения, разделенные запятой), снимок экрана, показанный ниже,

Лист Excel:

enter image description here

Текстовый файл:

enter image description here

Я использую код, показанный ниже:

# importing necessary modules for performing the required operation
    import glob
    import csv
    from openpyxl import load_workbook
    import xlwt

    #read the text file(s) using the CSV modules and read the dilimiters and quoutechar
    for filename in glob.glob("E:\Scripting_Test\Phase1\*.txt"):
        spamReader = csv.reader((open(filename, 'rb')), delimiter=',')


        #read the excel file and using xlwt modules and set the active sheet
        wb = load_workbook(filename=r"E:\Scripting_Test\SeqTem\Seq0001.xls")
        ws = wb.worksheets(0)


        #write the data that is in text file to excel file
        for rowx, row in enumerate(spamReader):
            for colx, value in enumerate(row):
                ws.write(rowx, colx, value)

        wb.save()

Появляется следующее сообщение об ошибке:

UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0xd0 в позиции 0: недопустимый байт продолжения

Еще один вопрос: как вы можете указать python импортировать текстовые данные, начиная с столбца A3 в листе excel?

Ответ 1

Кодировка Unicode меня смущает, но вы не можете заставить значение игнорировать недопустимые байты, говоря:

value = unicode(value, errors='ignore')

Вот отличный ответ для большего чтения в юникоде: unicode(). decode ('utf-8', 'ignore'), поднимающий UnicodeEncodeError

Ответ 2

openpyxl работает только с OOXML format (xlsx/xlsm). Попробуйте сохранить формат xlsx вместо xls, используя Excel.

Если вы хотите конвертировать xls файл в xlsx в коде. Попробуйте один из вариантов из списка ниже:

  • В Windows вы также можете использовать excelcnv инструмент для преобразования xls в xlxx.
  • В Linux проверьте эту статью.
  • Или вы можете преобразовать в xlsx, используя xlrd в Python. Проверьте этот Q & A.

Ответ 3

Привет Вы уверены, что у вас нет документа, который Спецификация UTF-8

Вы можете попробовать с помощью кодека BOM UTF-8. Обычно Windows + UTF + 8 может быть немного хлопотно. Хотя этот символ, который он показывает, может не быть спецификацией.