如何在Python中写入文件之前确保文件存在或可以创建?

mag*_*tar 3 python filesystems file-io

我正在编写一个函数,我想将它放到touch一个文件中,以便我可以写入该文件.如果该文件不存在,我将收到错误.我该怎么说呢?

awe*_*omo 12

只需打开文件进行写入,如果文件不存在,则会创建(假设您有适当的权限写入该位置).

f = open('some_file_that_might_not_exist.txt', 'w')
f.write(data)
Run Code Online (Sandbox Code Playgroud)

IOError如果你无法打开文件进行写作,你将得到一个.

  • 请注意,这是详细问题的正确答案,但这不是"Python相当于触摸"(正如问题标题所暗示的那样) (4认同)

Gre*_*att 7

根据文档,os.utime()的作用类似于touch,如果你给它作为时间参数,例如:

os.utime("test_file", None)
Run Code Online (Sandbox Code Playgroud)

当我测试它时(在Linux和更高版本的Windows上),我发现test_file必须已经存在.YMMV在其他操作系统上.

当然,这并不能真正解决写入文件的问题.正如其他答案所说,你通常希望开放尝试...除了在文件不存在时捕获异常.