Python3 - 文件不存在才能写入

问题

向一个文件中写入数据,但是前提必须是这个文件在文件系统上不存在。 也就是不允许覆盖已存在的文件内容。

解决方案

可以在 open() 函数中使用 x 模式来代替 w 模式的方法来解决这个问题。比如:

with open('/Users/xz/test/cook.txt', 'w') as f:
    f.write('Hello Python !')
    f.close()

with open('/Users/xz/test/cook.txt', 'x') as f:
    f.write('Hello Python !')
    f.close()

Traceback (most recent call last):
  File "/Users/xz/Documents/sublime/cookbook/cook-5.5.py", line 5, in <module>
    with open('/Users/xz/test/cook.txt', 'x') as f:
FileExistsError: [Errno 17] File exists: '/Users/xz/test/cook.txt'

如果文件是二进制的,使用 xb 来代替 xt

讨论

x模式是一个Python3open() 函数特有的扩展。 在Python的旧版本或者是Python实现的底层C函数库中都是没有这个模式的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,109评论 2 16
  • 好学生与坏学生 甲:经过我的发现,校园里有两类学生 乙:哪两类? 甲:好学生和坏学生。 乙:废话少说。 甲...
    康飞格阅读 1,144评论 0 0
  • 微微晃动着的车厢里,大多数人已经在一天的疲倦中沉沉睡去,安静的车厢里只剩下几处手机屏幕照在脸上的光,都各怀心事...
    马儿爱笑也爱闹阅读 3,290评论 1 1
  • 一天傍晚,山林里下了一场大雨,一群小动物来到了一个山洞里躲雨。没过多久,山洞里突然走进来一只大老虎。大老虎舔着嘴巴...
    凯_2a99阅读 1,612评论 0 0