通过网络传输python生成器

时间:2015-03-07 23:44:32

标签: python sockets generator

有没有办法通过网络传输生成器?假设我有一个随机子集数组的函数

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()需要缓冲区或字符串。如果我认为可以将发电机作为该功能的输入是荒谬的,那就道歉。

1 个答案:

答案 0 :(得分:2)

不确定。您可以使用pickle。具体来说,pickle.dumps,它将序列化对象作为字符串返回,因此您可以通过套接字发送它。如果您正在运行Python 2.x,请考虑使用cPickle代替它,它会更快。

但是,您似乎无法序列化生成器(至少使用pickle),因此请考虑使用列表或元组。

希望它有所帮助。