【发布时间】:2015-11-11 09:48:36
【问题描述】:
字符串从 python 2.x 切换到 python 3 时遇到一些问题
问题 1:
from ctypes import*
charBuffer=create_string_buffer(1000)
var = charBuffer.value # var contains like this "abc:def:ghi:1234"
a,b,c,d= var.split(':')
它在 python 2.x 中可以正常工作,但在 3.x 中却不行,它会抛出一些像这样的错误 a,b,c,d= var.split(':') TypeError: 'str' 不支持缓冲区接口
我在 stackoverflow link link2 做了一些研究后得到了链接
如果我打印,所需的输出将是
a= abc
b =def
c=ghi
d=1234
问题2:
from ctypes import*
cdll = "Windll"
var = 0x1fffffffffffffffffffffff # I want to send this long variable to character pointer which is in cdll
charBuf =create_string_buffer(var.to_bytes(32,'little'))
cdll.createBuff (charBuf )
cdll function
int createBuff (char * charBuff){
print charBuff
return 0;
}
我想将这个长变量发送到 cdll 中的字符指针,因为它是一个字符指针,它会抛出错误。 需要您对我如何实现这一点的宝贵意见。提前致谢
【问题讨论】:
-
@Vineet Kumar Doshi,在我的问题陈述中添加了所需的输出