四个进程将文本附加到同一文件

时间:2018-01-23 16:29:15

标签: python file io multiprocessing

我有4个并行运行的Python脚本/进程,每个脚本/进程每隔~30秒将文本附加到一个文件中:

while True:
    id = processing_job() # 30 seconds long
    with open('log.txt', 'a+') as f:
        f.write('Job number #%i done.' % id)

当使用open(..., 'a+') 2个进程同时想要完全时,是否存在风险,然后某些文本无法写入{{1}失去了?

注意:我使用的是Windows平台。

1 个答案:

答案 0 :(得分:0)

我做了一个快速测试,打开同一个文件,它没有给我任何问题。

已使用Python36。

如此测试:

test1.py

with open("test","a+") as file_:
    file_.write("First process!\n")
print("done!")

test2.py

with open("test","a+") as file_:
    file_.write("Second process!\n")
print("done!")

python3 test1.py & python3 test2.py

输出符合预期。

First process! Second process!

在同一个文件中运行了很多其他变体(第一个字符串和第二个字符串),没有遇到任何错误