有没有办法通过网络传输生成器?假设我有一个随机子集数组的函数
def random_array_generator(array, n):
rows = np.random.randint(0 , array.shape[0], n)
sliced_array = array[rows]
yield sliced_array
然后
data = random_array_generator(some_array, 100)
有没有办法将data
发送到远程服务器?我使用socket
构建了基本的TCP客户端/服务器连接,但s.send()
需要缓冲区或字符串。如果我认为可以将发电机作为该功能的输入是荒谬的,那就道歉。
答案 0 :(得分:2)
不确定。您可以使用pickle
。具体来说,pickle.dumps
,它将序列化对象作为字符串返回,因此您可以通过套接字发送它。如果您正在运行Python 2.x,请考虑使用cPickle
代替它,它会更快。
但是,您似乎无法序列化生成器(至少使用pickle
),因此请考虑使用列表或元组。
希望它有所帮助。