如何快速重置 Python 缓冲区对象中的一组连续值?
主要是我在找一个memset :)
附言。该解决方案应适用于 Python 2.5 并修改缓冲区本身(无副本)。
最佳答案
ctypes 包有一个内置的 memset 函数。Ctypes 可以与 Python 2.5 一起使用,但默认情况下不包括在内。您将需要单独安装。
def memsetObject(bufferObject):
"Note, dangerous"
import ctypes
data = ctypes.POINTER(ctypes.c_char)()
size = ctypes.c_int() # Note, int only valid for python 2.5
ctypes.pythonapi.PyObject_AsCharBuffer(ctypes.py_object(bufferObject), ctypes.pointer(data), ctypes.pointer(size))
ctypes.memset(data, 0, size.value)
testObject = "sneakyctypes"
memsetObject(testObject)
print repr(testObject)
# '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
关于python - 如何用 Python 缓冲区对象做 memset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8270919/