Я читал двоичный файл в Python следующим образом:
from struct import unpack
ns = 1000
f = open("binary_file", 'rb')
while True:
data = f.read(ns * 4)
if data == '':
break
unpacked = unpack(">%sf" % ns, data)
print str(unpacked)
когда я понял, что unpack ("> f", str)
предназначен для распаковки IEEE с плавающей запятой, мои данные представляют собой 32-битные числа с плавающей запятой IBM
Мой вопрос:
Как я могу использовать мой unpack
для распаковки 32-битных чисел с плавающей запятой IBM?
Я не возражаю использовать подобные ctypes
для расширения Python для повышения производительности.
] РЕДАКТИРОВАТЬ: Я немного искал: http://mail.scipy.org/pipermail/scipy-user/2009-January/019392.html
Это выглядит очень многообещающе, но я хочу стать более эффективным: потенциально существуют десятки тысяч циклов .
РЕДАКТИРОВАТЬ: опубликовал ответ ниже. Спасибо за совет.