【发布时间】:2023-04-01 02:10:01
【问题描述】:
所以我在 python 中使用 *args **kwargs 功能已经有一段时间了,我遇到了一个问题,我似乎无法在 stackoverflow 的文档/此处找到解决方案。
我有一个多线程作业,它并行向服务器发送请求,然后对返回的 JSON 进行一些分析。我需要为每个请求-响应对写入一个 csv 文件。
因为这是并行完成的,所以在线程作业函数中写入 csv 会有问题。我想出的解决方案是将分析结果也放入一个que中,然后创建一个函数从que的分析中获取它并按顺序将其写入csv。
现在是真正的问题:
我必须写入 csv 的函数接受参数和关键字参数,但 que 不知道如何处理。
有没有办法将 *args **kwargs 放在一个队列中,然后一个接一个地获取它们并将它们传递给另一个函数?
我想要一些看起来像这样的东西:
csv_que = Queue()
# put arguments to the que which will be written later
def write_row_to_que(self,*args, **kwargs):
csv_que.put(*args, **kwargs)
# send each argument in the que to the write_row function with the arguments
#from the que
def csv_writer_func():
while True:
args, kwargs = csv_que.get()
write_row(args, kwargs)
我不知道这是否是解决此问题的正确方法,但我很想听听一些想法以及此功能(将参数传递给 que,然后从中拉出)是否可行。
【问题讨论】:
标签:
python
multithreading
python-2.7
keyword-argument
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python *args **kwargs 在 que 中使用 - Python技术站