如果两个python脚本想要在同一个文件中写入会发生什么?

dme*_*meu 13 python io file

我有一个管道,在某些时候将工作拆分成各种子流程,并行执行相同的操作.因此,他们的输出应该进入同一个文件.

说所有这些进程都写入同一个文件是否风险太大?或者python是否尝试重试,如果它看到该资源被占用?

gec*_*cco 9

这取决于系统.在Windows中,资源被锁定,您将获得异常.在Linux中,您可以使用两个进程编写文件(可以混合写入的数据)

理想情况下,在这种情况下,您应该使用信号量来同步对共享资源的访问.

如果使用信号量太重而无法满足您的需求,那么唯一的选择就是写入单独的文件......

编辑:正如后面的文章中所指出,资源管理器是处理并发编写器的另一种选择


NPE*_*NPE 7

一般来说,这不是一个好主意,需要花很多精力才能做好.由于写入必须被序列化,因此它也可能对可伸缩性产生不利影响.

我建议写入单独的文件并合并(或者将它们作为单独的文件保留).