我有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平台。
答案 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!
在同一个文件中运行了很多其他变体(第一个字符串和第二个字符串),没有遇到任何错误