python3文件打开写入异常处理

python3 file open write exception handling

下面的代码是否提供了正确的异常处理。我的目标是,除非文件已成功打开并确保文件已关闭,否则不要尝试 file.write() 。我不关心文件未打开或文件未写入的确切错误。

Python 版本 3.6.9。 OS Linux.

data = "Some data"
filename = "test.txt"

try:
    file = open(filename, 'w+')
except:
    print("Error opening file")
else:
    try:
        file.write(data)
    except:
        print("Error writing to file")
finally:
    file.close()

你应该;始终清楚地说明您要处理的异常。

这里是使用上下文处理程序的重构,因此您可以避免显式 finally: close

data = "Some data"
filename = "test.txt"

try:
    with open(filename, 'w+') as file:
        try:
            file.write(data)
        except (IOError, OSError):
            print("Error writing to file")
except (FileNotFoundError, PermissionError, OSError):
    print("Error opening file")

您可能需要列举更多例外情况;我把这些从头顶上敲下来。