Python: чтение массива в двоичном файле - PullRequest
3 голосов
/ 13 февраля 2012

В настоящее время я пытаюсь прочитать файл на Фортране с помощью Python, используя следующую технику

with open(myfile, "rb") as f:
    for i in range (0, n):
        s = struct.unpack('=f', f.read(4))
        mylist.append(s[0])

Но это очень медленно для больших массивов. Есть ли способ прочитать содержимое всего цикла за один раз и поместить его в mylist, чтобы избежать преобразования / добавления каждого элемента по одному?

Большое спасибо.

1 Ответ

11 голосов
/ 13 февраля 2012

Для чего предназначен модуль array:

a = array.array('f')
a.fromfile(f, n)

Теперь вы можете использовать объект массива как обычный тип последовательности. Вы также можете преобразовать его в список, если вам нужно, с помощью tolist.

...