将 C_ulong_Array_40 转换为 python 中的列表或字符串?
Convert C_ulong_Array_40 to list or string in python?
我正在尝试通过一些与硬件单元交互的 python 代码。
该单元有一个 python 库,我在其中使用了一个名为“readsub”的函数。但它 returns 我得到的格式为“C_ulong_Array_40”
的数据
代码很简单:
err, length, data = card.ReadSub(2)
write_tofile(1, data)
但随后出现以下错误:
+ 不支持的操作数类型:'c_ulong_Array_40' 和 'str'
我想我需要使用 ctypes 来做一些事情,但现在它有点“神奇”,因为我在 python 方面还不是很好。
有什么方法可以将“数据”转换成某种有用的格式?它可以是一个 python 列表或一个包含所有数据的长字符串。
谢谢,br。马丁
根据我刚刚了解到的,C_ulong_Array_40
是一个数据类型为 ulong
的 ctype 数组,长度为 40。
仅供参考 c_ulong
是 c_uint
的别名,c_long
也是 c_int
https://docs.python.org/3/library/ctypes.html) 的别名。
获取整数列表;
list_of_ints = [x for x in data]
获取字符串列表;
list_of_str_ints = [str(x) for x in data]
不需要奇怪的转换!
我正在尝试通过一些与硬件单元交互的 python 代码。
该单元有一个 python 库,我在其中使用了一个名为“readsub”的函数。但它 returns 我得到的格式为“C_ulong_Array_40”
的数据代码很简单:
err, length, data = card.ReadSub(2)
write_tofile(1, data)
但随后出现以下错误: + 不支持的操作数类型:'c_ulong_Array_40' 和 'str'
我想我需要使用 ctypes 来做一些事情,但现在它有点“神奇”,因为我在 python 方面还不是很好。
有什么方法可以将“数据”转换成某种有用的格式?它可以是一个 python 列表或一个包含所有数据的长字符串。
谢谢,br。马丁
根据我刚刚了解到的,C_ulong_Array_40
是一个数据类型为 ulong
的 ctype 数组,长度为 40。
仅供参考 c_ulong
是 c_uint
的别名,c_long
也是 c_int
https://docs.python.org/3/library/ctypes.html) 的别名。
获取整数列表;
list_of_ints = [x for x in data]
获取字符串列表;
list_of_str_ints = [str(x) for x in data]
不需要奇怪的转换!