Pythonic API,可以使用已知内容创建高效的文件

时间:2014-03-12 20:43:53

标签: python api file-io io

问题是关于API设计。场景是,我在内存中有一些KNOWN长度的字节,我想设计一个Pythonic API,用AWS S3将它们刷新到RPCs。通过Pythonic,我的意思是如果已经有一个接受的API这样做,我想复制它。

一种方法是做io.create(filename, content)之类的事情。可以使用HTTP S3 API将此转换为单个XML请求。

传统的openwriteclose模式是一种流API。 open不接受长度参数,因此创建的流不知道它应该将所有写入缓冲到单个RPC中。

当然,API可能如下所示:

with open(filename, buffering="UNLIMITED") as f:
   f.write(content)

但缓冲并不真正支持"UNLIMITED"常数。

那我该怎么办?提交PEP?感谢。

1 个答案:

答案 0 :(得分:0)

NFS,至少在版本2和3中,并不是非常擅长锁定或原子性。

至少在NFS 2和3中,最好的办法是用临时名称创建文件,然后使用os.rename()。

也许在NFS 4中已经取得了一些进展;我不知道。