使用 open("hello.txt", "wb") 作为 f:
f.write("你好 Python!\n")
似乎和
f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()
使用 open .. as 而不是 f = 有什么好处?它只是语法糖吗?只保存一行代码?
使用 open("hello.txt", "wb") 作为 f:
f.write("你好 Python!\n")
似乎和
f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()
使用 open .. as 而不是 f = 有什么好处?它只是语法糖吗?只保存一行代码?
为了与with语句版本等效,您编写的代码应如下所示:
f = open("hello.txt", "wb")
try:
f.write("Hello Python!\n")
finally:
f.close()
虽然这看起来像是语法糖,但它可以确保您释放资源。一般来说,世界比这些人为的例子更复杂,如果你忘记了一个try.. except...或未能处理一个极端情况,你手上就会有资源泄漏。
该with语句使您免于这些泄漏,从而更容易编写干净的代码。要获得完整的解释,请查看PEP 343,它有很多示例。
如果f.write抛出异常,f.close()则在您使用时with调用,而在第二种情况下不调用。范围f更小,使用时代码更干净with.
如果f在f.write().