Двоичные данные редко делятся на «строки», разделенные символом «\n». Если это так, он будет иметь неявный или явный механизм escape, чтобы различать '\n' как признак конца строки и '\n' как часть данных. Читать такой файл как строки вслепую, не зная механизма выхода, бессмысленно.
Чтобы ответить на ваши конкретные проблемы:
'\x07' - это символ ASCII BEL, который изначально предназначался для звонка в звонок на телетайпе.
Вы можете получить целочисленное значение байта «b», выполнив ord(b)
.
ОДНАКО, чтобы правильно обрабатывать двоичные данные, вам необходимо знать макет. У вас могут быть целые числа со знаком и без знака (размером 1, 2, 4, 8 байт), числа с плавающей запятой, десятичные числа различной длины, строки фиксированной длины, строки переменной длины и т. д. Дополнительные сложности возникают из-за того, записываются ли данные в бигендианской моде или литэндийской моде. Как только вы узнаете все вышеперечисленное (или сделаете очень обоснованные предположения), модуль структуры Python должен использоваться для всей или большей части вашей обработки; также может быть полезен модуль ctypes.
Есть ли у формата данных имя? Если да, сообщите нам; мы можем указать вам код или документы.
Вы спрашиваете: «Как мне безопасно использовать эти данные?» напрашивается вопрос: для чего вы хотите его использовать? Какие манипуляции вы хотите сделать?
person
John Machin
schedule
17.06.2010