想向一个文件中写入数据,但是前提必须是这个文件在文件系统上不存在。也就是不允许覆盖已存在的文件内容。
可以在open() 函数中使用x 模式来代替w 模式的方法来解决这个问题。比如:
>>> with open("somefile", "wt") as f:
... f.write("Hello ")
...
>>> with open("somefile", "xt") as f:
... f.write("Hello ")
...
Traceback (most recent call last):
File "", line 1, in
FileExistsError: [Errno 17] File exists: "somefile"
>>>
先测试这个文件是否存在
>>> import os
>>> if not os.path.exists("somefile"):
... with open("somefile", "wt") as f:
... f.write("Hello ")
... else:
... print("File already exists!")
...
File already exists!
>>>
显而易见,使用x 文件模式更加简单。要注意的是x 模式是一个Python3 对open() 函数特有的扩展。在Python 的旧版本或者是Python 实现的底层C 函数库中都是没有这个模式的。