处理尝试读取可能不存在的文件

时间:2013-05-25 17:26:09

标签: python

python中处理可能不存在的文件的最佳方法是什么?

目前我有以下内容:

    try:
        with open(filename, "r") as f:
            return f.read()
    except IOError:
        return False

这是最好的方法,还是在任何级别上都是错误的?

我想我最担心的是:

  1. 仅捕获异常以返回false
  2. 也许我错过了一种“Python”方式,默默地错过了丢失文件的错误

3 个答案:

答案 0 :(得分:9)

try / except确实是最好的方式。

答案 1 :(得分:1)

try except block会捕获错误,但您可能不想抑制错误。

如果您正在编写一个返回从文件中读取的内容的函数,那么return ''而不是False会更明智。函数通常只返回一种类型是个好主意。类似的东西:

try:
    with open(filename) as f:
        return f.read()
except IOError:
    return ''

实际上,您似乎在发出错误信号并返回。如果是这样,通常最好让异常传播出函数。使用返回值来表示异常情况并不是pythonic。

答案 2 :(得分:0)

import os

if os.path.isfile('./file.txt'):
  # do something with the file