【发布时间】:2017-02-24 22:09:45
【问题描述】:
我尝试执行的 python 代码必须将两个不同的变量写入文件。我正在使用 Condor 来加快我的进程,这意味着 python 代码是同步执行的。我定义的写函数是:
with open('output.txt', 'a') as results_file:
results_file.write(str(gc_count) + '\n')
results_file.write(str(length) + '\n')
results_file.close()
但不幸的是,文件以某种方式不断覆盖结果。有人可以帮助我如何使用 Condor 将变量写入文本文件吗?
【问题讨论】:
-
首先不要
results_file.close(),你已经有了一个上下文管理器。然后,即使附加模式,如果您在并行线程/进程中运行此代码,您也需要一个互斥体。 -
感谢您的建议!你知道我在哪里可以找到一个使用互斥锁的例子吗?
-
多线程还是多处理?
-
我使用的是多线程的 THCondor
-
在这种情况下使用
threading.Lock()对象。