MvG*_*MvG 8 python io file-io posix python-3.x
什么是打开文件的最优雅的方式
据我所知,在open
内置似乎并没有胜任这项任务:它提供了多种模式,但每一个我试图不能满足我的要求的至少一个:
r+
如果文件不存在则失败.w+
将截断文件,丢失任何现有内容.a+
将强制所有写入到文件的末尾,至少在我的OS X上.在打开文件之前检查存在感觉很糟糕,因为它为竞争条件留出了空间.同样适用于在异常处理程序中使用不同模式重试open.我希望有更好的方法.
您需要使用os.open()
在OS中的较低级别打开它而不是open()
允许.特别是,通过os.RDWR | os.O_CREAT
为flags
应该做你想要什么.有关open(2)
详细信息,请参见手册页.然后,您可以传递返回的FD以os.fdopen()
从中获取文件对象.