问题
我们想将数据写入到一个文件中,但只在该文件已不存在文件系统中时才这么做。
解决方案
这个问题可以通过使用open()
函数中鲜为人知的x
模式替代常见的w
模式来解决。示例如下:
如果文件是二进制模式的,那么用xb
模式代替xt
即可。
讨论
本文中的示例以一种非常优雅的方式解决了一个常会在写文件时遇到的问题(即,意外地覆盖了某个已存在的文件)。另一种解决方案是首先像这样检查文件是否已存在:
很明显,使用x
模式更加简单直接。需要注意的是,x
模式是Python 3中对open()
函数的扩展。在早期的Python版本或者在Python的实现中用到的底层C函数库里都不存在这样的模式。