def save2csv(field_name, filename=None):
print(field_name, filename)
while True:
recv_data = yield 100
if recv_data == '\q':
break
print(recv_data)
def save2mongo(dbname, colname):
while True:
recv_data = yield
if recv_data == '\q':
break
print(recv_data)
def get_data_from_generator(generator):
csv_gen = save2csv('field-name')
csv_gen.send(None) # 启动生成器
mongo_gen = save2mongo('dbname', 'colname')
mongo_gen.send(None)
gen_list = [csv_gen, mongo_gen]
while True:
try:
# 接收数据
data = next(generator)
print('recv data:', data)
# 发送数据
for gen in gen_list:
gen.send(1234)
except StopIteration as si:
print('generator was stop.', si)
# 关闭生成器
for gen in gen_list:
gen.close()
break
def generator_func():
for i in range(30):
yield i
if __name__ == "__main__":
# 前期测试
# gen_csv = save2csv('field-name')
# print(gen_csv.send(None))
# for i in range(10):
# gen_csv.send(i)
# gen_csv.send('\q')
generator = generator_func()
get_data_from_generator(generator)
python 生成器的数据发送以及多端接收
猜你喜欢
转载自www.cnblogs.com/trent-fzq/p/11478664.html
今日推荐
周排行