2015-07-09 8 views
0

Я очень новичок в Python, и я пытаюсь прочитать в файле, который частично содержит двоичные данные. Существует заголовок с некоторой информацией о данных и после того, как последуют двоичные данные заголовка. Если один открывает файл в текстовом редакторе это выглядит следующим образом:Чтение в двоичных данных с помощью python

>>> Begin of header <<< 
value1: 5 
value2: 7 
... 
value65: 9 
>>> End of header <<< 
���ÄI›C¿���†¨¨[email protected]���ÄW]c¿��� U⁄[email protected]���@¬P\¿����∂:[email protected]���@Ò˚U¿���†÷[email protected]���`ªw4¿��� :‘[email protected]���@À›[email protected]���Ä[email protected]���¿‹ ¿����ı[email protected]���¿@&%@���†„[email protected]����*˙[email protected]��� [[email protected]����Ú[email protected]���� 
Ò[email protected]���@√·[email protected]���†‰[email protected]����9\@����ÃÜ[email protected]����€[email protected]���`Ëä[email protected]���†∏[email protected]���¿¬[email protected]���†�6 

еще одна проблема в том, что я не создавать файл самостоятельно и не сейчас, если таковые имеют двойные или всплывают данные.

Так как я могу интерпретировать эти данные?

+0

Err все, что я вижу, это '?' –

+0

@UnicornsAreVeryVeryYummy Ну да, это двоичные данные, а не текст. –

+0

Возможный дубликат [Чтение некоторого двоичного файла в Python] (http://stackoverflow.com/questions/1035340/reading-some-binary-file-in-python) – BiTinerary

ответ

0

Итак, во-первых, спасибо всем за помощь: Так что в основном проблема заключается в заголовке. Я могу читать данные, когда я удаляю заголовок из файла. Это может быть сделано с

х = numpy.fromfile (F, DTYPE = numpy.complex128, кол = -1)

довольно легко. Проблема в том, что я не могу найти никакой опции для функции fromfile, которая пропускает строки (можно пропускать байты, но размер заголовка может отличаться от файла к файлу.

В этом большом потоке я нашел способ преобразования двоичного кода массив с Numpy массива:.

convert binary string to numpy array

с этим я мог бы решить эту проблему, прочитав в файле данных линии для линии, а затем объединить все строки после конца строки заголовка вместе в одной строке Эта строка была тогда изменен в хороший массив точно так, как я этого хотел.

Смежные вопросы