Python - преобразование широкого символа представляет в виде строки от двоичного файла до Python unicode строки

Это был долгий день, и я немного озадачен.

Я читаю двоичный файл, который содержит много широко-символьных строк, и я хочу разгрузить их как Python unicode строки. (Для распаковки нестроковых данных, я использую модуль структуры, но я не делаю, как сделать то же со строками.)

Например, чтение слова "Series":

myfile = open("test.lei", "rb")
myfile.seek(44)
data = myfile.read(12)

# data is now 'S\x00e\x00r\x00i\x00e\x00s\x00'

Как я могу закодировать те необработанные широко-символьные данные строкой Python?

Править: Я использую Python 2.6

5
задан Mikesname 30 April 2010 в 23:33
поделиться

2 ответа

>>> data = 'S\x00e\x00r\x00i\x00e\x00s\x00'
>>> data.decode('utf-16')
u'Series'
8
ответ дан 18 December 2019 в 14:43
поделиться

Хм, почему вы говорите, что "open" предпочтительнее "file"? Я вижу в справочнике (python 2.5):

3.9 Файловые объекты Файловые объекты реализуются с помощью пакета stdio языка Си. и могут быть созданы с помощью встроенного конструктора file(), описанного в разделе 2.1, ``Встроенные Функции.''3.6 ----- Сноска (3.6) file() является новой в Python 2.2. Старая встроенная open() является псевдонимом для file().

0
ответ дан 18 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: