Это был долгий день, и я немного озадачен.
Я читаю двоичный файл, который содержит много широко-символьных строк, и я хочу разгрузить их как 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
>>> data = 'S\x00e\x00r\x00i\x00e\x00s\x00'
>>> data.decode('utf-16')
u'Series'
Хм, почему вы говорите, что "open" предпочтительнее "file"? Я вижу в справочнике (python 2.5):
3.9 Файловые объекты Файловые объекты реализуются с помощью пакета stdio языка Си. и могут быть созданы с помощью встроенного конструктора file(), описанного в разделе 2.1, ``Встроенные Функции.''3.6 ----- Сноска (3.6) file() является новой в Python 2.2. Старая встроенная open() является псевдонимом для file().