/ / Как да получите указател на суровите двоични данни в Python? - питон, питон-2.7, ctypes

Как да получите указател на сурови двоични данни в Python? - python, python-2.7, ctypes

Бих искал да получа указател към суровите двоични данни от байтове, bytearray или копие на memoryview чрез ctypes и Python API.

За четене, (c_char * len(b)).from_buffer(b) работи в Python 3. За писане използвах следното:

buffer = c_void_p()
length = c_ssize_t()
pythonapi.PyObject_AsReadBuffer(py_object(b), byref(buffer), byref(length))

Но разбрах, че кодът не работи в Python 2.7 с memoryview.

Отговори:

2 за отговор № 1

В момента използвам Python буферна структурадефинирани чрез ctypes и Python API функцията PyObject_GetBuffer за получаване на буфер от произволно съвместим обект. Моят Python буфер структура обект след това се трансформира в c_char масив и създаден буфер обект се relased използва PyBuffer_Release. виждам https://github.com/Drekin/win-unicode-console/blob/master/win_unicode_console/buffer.py.