首页 > 解决方案 > 通过多个线程将数据写入一个文件

问题描述

如何使用 ProcessPoolExecutor 从多个线程将数据写入单个文件?我遇到了问题

Traceback (most recent call last):
  File "/usr/lib/python3.6/multiprocessing/queues.py", line 234, in _feed
    obj = _ForkingPickler.dumps(obj)
  File "/usr/lib/python3.6/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
TypeError: cannot serialize '_io.TextIOWrapper' object

我的例子在这里

标签: pythonpython-3.xpython-requests

解决方案


  • ProcessPoolExecutor使用单独的进程,而不是线程。

    如果你想要线程,你需要ThreadPoolExecutor.

    如果您需要单独的进程,则不能共享这样的变量。

  • 从多个线程/进程写入同一个文件可能具有挑战性。你想达到什么目的?可能有更简单的方法来做到这一点......


推荐阅读