- 如果我使用
r+
,那么如果文件不存在,就不会创建它 - 如果我使用
w+
,文件将被截断 - 如果我使用
a+
,我只能追加而不能搜索预先存在的偏移
所以似乎不可能在对Python内置函数open
的一次调用中做到这一点?我需要使用多个调用,并确保不会在两者之间引入竞争条件?
有一个小的低级助手:
import os
def open_create(name, flags):
return os.open(name, flags | os.O_CREAT)
with open("./testfile", 'r+', opener=open_create) as f:
... read/write ...