打印出值列表

时间:2017-07-12 19:43:38

标签: python printing ctypes

我有一个用ctypes包装在Python中的C库,我在下面有这个DLL 当我要求时打印出时间值。但不是经历 每个项目并手动要求它打印出每个值60000次。我希望它用所有值创建自己的列表 这是我的代码和我已经包装的库的一个小例子:

import ctypes
from ctypes import *

class SParm(Structure):
pass

SParm._fields_ = [
        ('name', ctypes.c_char_p),
        ('data', ctypes.POINTER(ParmData)),
        ('time', ctypes.POINTER(ctypes.c_float))]

MultiF = (b'path_to_file')   
dll = CDLL('path_to_dll') 

PN = ctypes.c_char_p(b'Paramter_name')
startTime = ctypes.c_double(-3.4**38)
stopTime = ctypes.c_double(3.4**38)
DT_RETURN = 0x0100
DT_FLOAT = 0x0001
convertType = (DT_RETURNGMT|DT_FLOAT)
Null = 0

dll.readSParm.argtypes = (POINTER(SFile), c_char_p, c_double, c_double, c_double, POINTER(TTag), c_ushort,)   
dll.readSParm.restype = POINTER(SParm)

g = dll.readSParm(f, PN, startTime, stopTime, Null, None, convertType)

print(g[0].time[0])
print(g[0].time[1])
print(g[0].time[51999])

这些是代码给我的返回值:

-1031.0762939453125
-1031.0362548828125
0.0

而不是手动要求它打印出每个单独的值51000次,然后手动将所有这些值放入列表中。我想要一些能够同时打印出所有值的东西。有代码可以做到这一点吗? 也许print()不是将所有值都放入列表的最佳方法。

我的问题是:  如何打印

中包含的所有值
(g[0].time)

没有手动要求它单独打印出值并将它们放入列表中?

4 个答案:

答案 0 :(得分:3)

import sys
import numpy as np
np.savetxt(sys.stdout, g[0].time)

答案 1 :(得分:3)

你可以加入他们

print('\n'.join(g[0].time))

这将创建一个大字符串,用新行分隔每个值。

答案 2 :(得分:1)

您可以通过简单的for循环处理:

for x in g[0].time:
  print(g[0].time[x])

答案 3 :(得分:1)

您可以将它们打印为一个列表,执行:

print(g[0].time)

或单独打印每个值:

for value in g[0].time:
    print(value)