Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 15, 2011 09:11:46

andySPB
От:
Зарегистрирован: 2011-02-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с бинарными данными на питоне

День добрый. Есть определение структуры файла (С++):
typedef struct
{
DWORD Addr;
BS_LOG_EVENT Event;
BS_MOD_STATUS status;
BYTE source;
SYSTEMTIME time;
DWORD UserID;
} BS_LOGDATA;

Как в питоне произвести разбор таких данных? Можете привести краткий пример? Буду крайне благодарен..



Офлайн

#2 Фев. 15, 2011 11:55:23

Schubbe
От:
Зарегистрирован: 2010-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с бинарными данными на питоне

Как вариант, могу предложить написать модуль расширения с применением Cython:
http://docs.cython.org/src/userguide/external_C_code.html

Как второй вариант, использовать ctypes.Structure:
http://docs.python.org/library/ctypes.html
http://wiki.python.org/moin/ctypes
http://stackoverflow.com/questions/1825715/how-to-pack-and-unpack-using-ctypes-structure-str



Отредактировано (Фев. 15, 2011 12:03:59)

Офлайн

#3 Фев. 15, 2011 12:02:37

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Работа с бинарными данными на питоне

import struct
примеры здесь http://docs.python.org/library/struct.html



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Фев. 15, 2011 12:09:37

Schubbe
От:
Зарегистрирован: 2010-09-13
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с бинарными данными на питоне

PooH, и как через struct выразить вложенную структуру SYSTEMTIME ?



Отредактировано (Фев. 15, 2011 12:10:58)

Офлайн

#5 Фев. 16, 2011 06:39:04

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Работа с бинарными данными на питоне

Schubbe
PooH, и как через struct выразить вложенную структуру SYSTEMTIME ?
Ну довольно просто написать к нему свою обертку, но вы правы, я забыл что ctypes уже часть стандартной библиотеки.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version