将 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_ulongc_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]

不需要奇怪的转换!