python中 “with” 关键字的取舍问题
自动管理资源(自动关闭文件)
当你使用 with
打开文件时,文件会在 with
代码块结束后自动关闭,无论是否发生异常。这意味着你不需要显式地调用 f.close()
来关闭文件
示例:
with open("words.txt", "r") as f:
# 处理文件内容
content = f.read() # 读取文件内容
# 文件自动关闭,无需显式调用 f.close()
如果你不使用 with
语句,而是直接调用 open()
,则需要手动关闭文件:
f = open("words.txt", "r")
content = f.read()
f.close() # 需要显式调用关闭文件
示例 1:只读模式 'r'
with open("words.txt", "r") as f:
content = f.read()
print(content)
示例 2:写入模式 'w'
with open("new_file.txt", "w") as f:
f.write("Hello, world!")
示例 3:追加模式 'a'
with open("log.txt", "a") as f:
f.write("\nNew log entry.")
示例 4:二进制模式 'rb'
和 'wb'
# 读取二进制文件
with open("image.jpg", "rb") as f:
binary_data = f.read()
# 写入二进制文件
with open("new_image.jpg", "wb") as f:
f.write(binary_data)