通过网络传输 python 生成器
Transfer a python generator across a network
有没有办法通过网络传输发电机?假设我有一个随机子集数组的函数
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 client/server 连接,但 s.send()
需要缓冲区或字符串。抱歉,如果认为我可以将生成器作为该函数的输入是荒谬的。
当然可以。您可以改用 pickle
. Specifically, pickle.dumps
, which returns the serialized object as a string, so you can send it via socket. If you're running Python 2.x, consider using cPickle
,它会快得多。
但是,您似乎无法序列化生成器(至少使用 pickle
),因此请考虑使用列表或元组。
希望对您有所帮助。
有没有办法通过网络传输发电机?假设我有一个随机子集数组的函数
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 client/server 连接,但 s.send()
需要缓冲区或字符串。抱歉,如果认为我可以将生成器作为该函数的输入是荒谬的。
当然可以。您可以改用 pickle
. Specifically, pickle.dumps
, which returns the serialized object as a string, so you can send it via socket. If you're running Python 2.x, consider using cPickle
,它会快得多。
但是,您似乎无法序列化生成器(至少使用 pickle
),因此请考虑使用列表或元组。
希望对您有所帮助。