草庐IT

python - 从 ctypes 数组中获取数据到 numpy

我正在使用Python(通过ctypes)包装的C库来运行一系列计算。在运行的不同阶段,我想将数据输入Python,特别是numpy数组。我使用的包装对数组数据有两种不同类型的返回(我特别感兴趣):ctypes数组:当我做type(x)(其中x是ctypes数组,我得到作为返回。我知道该数据是文档中内部数据的副本,我可以轻松地将其放入numpy数组中:>>>np.ctypeslib.as_array(x)这将返回一维numpy数据数组。ctype指向数据的指针:在这种情况下,从库的文档中,我了解到我正在获取指向存储并直接用于库的数据的指针。乳清我做type(y)(其中y是指针)我得到.

windows - 在 python 2.7 ctypes 中构建 UCS4 字符串缓冲区

尝试使用ctypes在纯python中重新创建_winapi.c(directlink)的getenvironment(..)C函数>,我想知道如何翻译以下C代码:buffer=PyMem_NEW(Py_UCS4,totalsize);if(!buffer){PyErr_NoMemory();gotoerror;}p=buffer;end=buffer+totalsize;for(i=0;i似乎函数ctypes.create_unicode_buffer(..)(doc,code)正在做一些非常接近的事情,如果我可以访问Py_UCS4C类型或确保它与python可通过ctypes访问的

c++ - Python ctypes 回调函数到 SWIG

我有一个需要函数指针(WNDPROC)的SWIGC++函数,并想给它一个已被ctypes.WINFUNCTYPE包装的Python函数。在我看来,这应该是兼容的,但是SWIG的类型检查会抛出异常,因为它不知道ctypes.WINFUNCTYPE类型实际上是一个WNDPROC。我该怎么做才能将我的回调传递给SWIG以便它理解它? 最佳答案 我没有Windows机器来真正检查这个,但我认为你需要创建一个类型映射来告诉swig如何将PyObject包装器转换为WNDPROC://assumingthewrappedobjecthasana

c++ - std::ctype 是否总是按 "C"语言环境对字符进行分类?

cppreference表示std::ctype提供基于经典“C”语言环境的字符分类。当我们创建这样的语言环境时,这甚至是真的吗:std::localeloc(std::locale("en_US.UTF8"),newstd::ctype);loc的方面是否仍会根据“C”语言环境或Unicode语言环境对字符进行分类?如果按前者分类,为什么我们还要将语言环境名称指定为“en_US.UTF8”? 最佳答案 标准要求默认构造std::ctype通过§22.4.1.3.3[facet.ctype.char.statics]/1匹配最小的“

python - 如何使用 ctypes 将 python 列表传递给 C 函数 (dll)

背景我有一些Python分析软件,我必须传递一个4096字节的列表(看起来像这样[80,56,49,50,229,55,55,0,77,......])到dll,以便dll将其写入设备。要写入的字节存储在变量名data中必须从python调用的c函数(在dll中)是int_DLL_BUILD_IO_DataWrite(HANDLEhDevice,unsignedchar*p_pBuff,unsignedcharp_nByteCntInBuff);我无权访问dll代码尝试过的方法我试图声明一个数据类型data_tx=(ctypes.c_uint8*len(data))(*data)并调用

php - 设置语言环境(LC_CTYPE, "de_DE.UTF8")或设置语言环境(LC_CTYPE, "de_DE.UTF-8")?

setlocale(LC_CTYPE,"de_DE.UTF8")或setlocale(LC_CTYPE,"de_DE.UTF-8")带破折号还是不带破折号?我在答案中都看到了。 最佳答案 我会运行locale-a并使用它输出的字符串。在OSX10.9上,我得到de_DE.UTF-8。在Debian6上,我得到de_DE.utf8。dpkg-reconfigurelocales另一方面使用de_DE.UTF-8。最安全的方法可能是检查setlocale的返回值,如果失败则尝试不同的变体。也就是说,所有版本通常都应该可以工作:带或不带破

php - 是否有类似 Python 的 PHP ctype 的东西?无需编写扩展即可访问库?

Python有ctypes访问库。在PHP中,您可以为所有内容编写扩展。像libgd这样的流行扩展几乎随处可用。有没有像Python的ctypes一样工作的扩展,让您无需编写PHP扩展就可以访问库? 最佳答案 您正在寻找ffi. 关于php-是否有类似Python的PHPctype的东西?无需编写扩展即可访问库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2152584/

php - ctype_alpha 但允许空格(php)

我想知道在使用ctype_alpha检查时是否可以在文本字段中允许空格。由于ctype_alpha只允许字母,我不知道如何让用户在字段中输入空格。我确实尝试过使用ctype_space但这没有用。我只是希望用户只能键入字母,并且如果他们“愿意”,他们可以选择包含空格。我希望我不必使用正则表达式。elseif(!ctype_alpha($fname)){echo"Yournamemayonlycontainalphabeticalletters";} 最佳答案 这就是我要做的if(!ctype_alpha(str_replace(''

php - 如何使用 ctype_alnum() 允许下划线和破折号?

如何在使用ctype_alnum()时将_和-的异常(exception)添加为有效字符??我有以下代码:if(ctype_alnum($username)){returnTRUE;}elseif(!ctype_alnum($username)){$this->form_validation->set_message('_check_username','Invalidusername!Alphanumericsonly.');returnFALSE;} 最佳答案 由于ctype_alnum只验证字母数字字符,试试这个:$sUser

php - 什么是 setlocale(LC_CTYPE, 'C' );实际上呢?

当我的PHP脚本以UTF-8编码运行时,使用非ASCII字符,一些PHP函数如strtolower()不起作用。我可以使用mb_strtolower,但是这个脚本可以在各种不同的平台和配置上运行,并且多字节字符串扩展可能不可用。我可以在使用前检查该函数是否存在,但我的代码中到处都是字符串函数,我不想替换每个实例。有人建议使用set_locale(LC_CTYPE,'C'),他说这会导致字符串函数正常工作。这听起来不错,但我不想在不确切了解其作用的情况下介绍该更改。我以前用set_locale改变数字的格式,但是我以前没有用过LC_CTYPE标志,我不太明白它的作用。值'C'是什么意思?