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

时间:2010-10-12 19:48:46

标签: python file-io filesystems

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

3 个答案:

答案 0 :(得分:12)

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

f = open('some_file_that_might_not_exist.txt', 'w')
f.write(data)

如果您无法打开文件进行书写,您将获得IOError

答案 1 :(得分:7)

如果您将“无”作为时间参数,则每个the docs, os.utime()的功能与触摸类似,例如:

os.utime("test_file", None)

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

当然,这并不能真正解决写入文件的问题。正如其他答案所述,您通常需要opentry ... except用于在文件不存在时捕获异常。

答案 2 :(得分:0)

如果您确实想要在文件不存在时引发错误,可以使用

import os
if not os.access('file'):
    #raise error
f = open('file')
#etc.