Python: Как мне прочитать и разобрать текстовый файл Unicode UTF-8? - PullRequest
3 голосов
/ 08 декабря 2009

Я экспортирую текст в формате UTF-8 из Excel и хочу прочитать и проанализировать входящие данные с помощью Python. Я прочитал всю информацию в Интернете, поэтому я уже пробовал это, например:

 txtFile = codecs.open( 'halout.txt', 'r', 'utf-8' )
 for line in txtFile:
  print repr( line )

Я получаю ошибку:

UnicodeDecodeError: кодек «utf8» не может декодировать байт 0xff в позиции 0: неожиданный байт кода

Глядя на текстовый файл в шестнадцатеричном редакторе, первые значения - это FFFE. Я также пробовал:

txtFile.seek( 2 )

сразу после 'open', но это просто вызывает другую ошибку.

Ответы [ 4 ]

5 голосов
/ 08 декабря 2009

Этот файл не является UTF-8; это UTF-16LE с маркером порядка байтов .

2 голосов
/ 08 декабря 2009

Это спецификация

РЕДАКТИРОВАТЬ, из комментариев, кажется, это бомба UTF-16

codecs.open('foo.txt', 'r', 'utf-16')

должно работать.

1 голос
/ 08 декабря 2009

Расширяя комментарий Джонатана, этот код должен правильно прочитать файл:

import codecs
txtFile = codecs.open( 'halout.txt', 'r', 'utf-16' )
for line in txtFile:
   print repr( line )
0 голосов
/ 08 декабря 2009

Попытайтесь проверить, есть ли в файле Excel пустые строки (а затем снова указаны значения), что может привести к непредвиденной ошибке.

...