9

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

目前我有以下内容:

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

这是最好的方法还是在任何层面上都是错误的?

我想我最大的担忧是:

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

3 回答 3

11

A try/except确实是最好的方法。

于 2013-05-25T17:27:29.937 回答
2
import os

if os.path.isfile('./file.txt'):
  # do something with the file
于 2019-04-29T15:54:54.987 回答
1

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

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

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

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

于 2013-05-25T17:43:39.263 回答