python - 如何用 Python 缓冲区对象做 memset?

标签 python wxpython buffer python-2.5

如何快速重置 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/

相关文章:

python - 创建一个函数来标准化分类变量 (python)

python - 如何使用 Mechanize python

python - 如何在 sympy 中求解非线性方程?

python - 是否可以在 wxPython gizmos ledctrl 上贴上标签?

python - 我正在尝试制作一个具有可变透明度的 wx.Frame(基于 erase bk 事件中映射的 png)

c - 从套接字读取缓冲区

c# - 在 .Net/C# 中播放音频

从可迭代对象(例如列表或集合)生成伪有序对列表的 Pythonic 方法

wxPython wx.TextCtrl 动态调整大小以填充面板宽度

检查输入字符串是否超过缓冲区限制(崩溃)