utf-16 поиск файлов в python. как?

По какой-то причине я не могу найти файл utf16. Он создает «UnicodeException: поток UTF-16 не начинается с спецификации». Мой код:

f = codecs.open(ai_file, 'r', 'utf-16') seek = self.ai_map[self._cbClass.Text] #seek is valid int f.seek(seek) while True: ln = f.readline().strip() 

Я пробовал случайные вещи, как первое чтение чего-то из потока, не помогло. Я проверил смещение, которое требуется использовать hex editor – строка начинается с символа, а не с нулевым байтом (я думаю, его хороший знак, правильно?) Итак, как искать utf-16 в python?

One Solution collect form web for “utf-16 поиск файлов в python. как?”

Ну, сообщение об ошибке сообщает вам, почему: он не читает знак байтового байта. Значок порядка байтов находится в начале файла. Без считывания знака порядка байтов декодер UTF-16 не может знать, в каком порядке находятся байты. Очевидно, он делает это лениво, когда вы читаете первый раз, а не когда вы открываете файл – или он предполагает что seek() запускает новый поток UTF-16.

Если в вашем файле нет спецификации, это определенно проблема, и вы должны указать порядок байтов при открытии файла (см. № 2 ниже). В противном случае я вижу два возможных решения:

  1. Прочитайте первые два байта файла, чтобы получить спецификацию, прежде чем искать. Вы, кажется, говорите, что это не сработало, указывая, что, возможно, он ожидает свежий поток UTF-16 после поиска, так что:

  2. Укажите порядок байтов явно, используя utf-16-le или utf-16-be в качестве кодировки при открытии файла.

    Interesting Posts

    Выполнение программ Java через Python

    .NET Regex Неопознанная структура группировки

    Как скрыть консоль, когда я использую os.system () или subprocess.call ()?

    Необычные параметры импорта ошибок в django

    Как изменить размер шрифта оси в графике matplotlib при рендеринге с использованием Latex?

    Получение вызываемого объекта из кадра

    Непрерывное трехмерное построение (например, обновление фигуры) с использованием python-matplotlib?

    Внедрить базовый класс в производный класс python (или более питоновский путь расширения классов)

    Целое число Python для письма класса

    Почему Python меняет значение целого числа, когда перед ним стоит 0?

    Что такое pythonic способ чтения CSV-файлов в виде строк с именами?

    Как проверить, находится ли текущее время в диапазоне в python?

    Pandas записывает данные в файл CSV

    Рисование линий между двумя участками в Matplotlib

    Создание класса Tkinter и ожидание возвращаемого значения

    Python - лучший язык программирования в мире.