使用Python的'with open()'写日志,如何将异常写入日志?

Using Python's 'with open()' To Write a Log, How Can I Write Exceptions to my Log?

我正在为命令 window 中 运行 的 python 脚本设置日志文件,以便记录脚本的所有输入和输出。我正在使用:

with open("file.txt") as file:

以便在发生异常时它仍然会保存所有已写入的文本。

但是我想知道是否有办法让它也记录异常?基本上是写最后一条消息,然后关闭文件作为退出功能?

关于 open() 本身的文档似乎很少。但我不确定这是否意味着它的使用受到限制。

为什么不显式捕获异常并重新抛出它:

with open("file.txt") as file:
    try:
        <do_something>
    except Exception as e:
        file.write(e)
        raise

如果异常是通过尝试写入文件生成的,那么挑战就来了。