我有许多内核并行地独立处理问题,并在它们的单独操作失败时写入同一日志文件。我当前的实现是:
with open(f'log.txt', 'ab') as log:
output = subprocess.call(args,
stderr=log)
以这种方式完成操作后,我认为log.txt文件在子进程期间保持打开状态,从而阻止了其他节点对其进行写入。这会使我的程序变慢。
相反,我想将stderr定向到某个变量,并且在子进程完成后,打开日志文件,编写stderr,然后关闭日志文件。
类似的东西:
output = subprocess.call(args,
stderr= log_message)
with open(f'log.txt', 'ab') as log:
log.append(log_message)
这可能吗?