/ / Ako získať ukazovateľ na surové binárne údaje v Pythone? - python, python-2.7, ctypes

Ako získať ukazovateľ na surové binárne údaje v Pythone? - python, python-2.7, ctypes

Chcel by som získať ukazovateľ na surové binárne dáta bajtov, bytearray alebo inštancie pamäte pomocou ctypes a Python API.

Pre čítanie, (c_char * len(b)).from_buffer(b) pracuje v Pythone 3. Na písanie som použil nasledovné:

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

Zistil som však, že kód nefunguje v Pythone 2.7 s pamäťou.

odpovede:

2 pre odpoveď č. 1

V súčasnosti používam Pythonovú vyrovnávaciu štruktúrudefinované pomocou ctypes a Python API funkcie PyObject_GetBuffer získať vyrovnávaciu pamäť z ľubovoľného kompatibilného objektu. Nástroj My Python buffer structure je potom transformovaný na c_char array a vytvorený buffer buffer je relased pomocou PyBuffer_Release. vidieť https://github.com/Drekin/win-unicode-console/blob/master/win_unicode_console/buffer.py.