在Python中,with open()方法又称为上下文管理协议(Context Management Protocol)。这个协议提供了一种方式来执行一段代码,并在代码执行前后自动执行一些操作,比如打开和关闭文件、获取和设置线程锁等。
with语句是Python中实现上下文管理协议的关键部分。它允许你指定一个对象,该对象必须实现__enter__()和__exit__()两个特殊方法。在进入with块时,__enter__()方法被调用,在退出with块时,__exit__()方法被调用。
使用with open()可以确保文件在使用完毕后被正确关闭,即使在处理文件时发生了异常。这样可以避免资源泄漏和其他问题。
with open方法相较于前面的方法优势是可以自动关闭文件,不需要手动关闭,这种方法也是较为常用的
其格式为with open('文件路径',文件打开模式:读取还是写入,编码格式) as f(as是取别名,后面的f是具体的名称):标红色的都是固定格式,别名可以任意取
代码的使用方法和参数啥的上篇文章写的很详细了,这里我就不再细说了
读取方法
下面用一段代码来演示:
with open(r'D:\PycharmProjects\firstproject\遮天\day01.txt','r',encoding='utf-8') as f:
print(f.read())
这个是读取文件里面的内容,下面再来给大家演示一个写入的方法
写入方法
写入单条:
with open(r'D:\PycharmProjects\firstproject\遮天\day01.txt', 'w', encoding='utf-8') as f:
f.write('这是写入的方法')
这个就是用with open()方法向文件里面写入内容
写入多条内容:
with open(r'D:\PycharmProjects\firstproject\遮天\day01.txt', 'w', encoding='utf-8') as f:
f.writelines(['前不见古人', '\n后不见来者', '\n念天地之悠悠', '\n独怆然而泪下'])
这里用的函数方法和上一篇文章用的方法是一样的都是writelines
追加写入:
with open(r'D:\PycharmProjects\firstproject\遮天\day01.txt', 'a', encoding='utf-8') as f:
f.write('加油,特种兵')
追加写入多条内容:
with open(r'D:\PycharmProjects\firstproject\遮天\day01.txt', 'a', encoding='utf-8') as f:
f.writelines(['\n生当作人杰', '\n死亦为鬼雄'])
\n是换行哦,铁子们不要忘记,追加的参数是a
二进制
二进制读取:
with open(r'D:\PycharmProjects\firstproject\遮天\R-C.jpg', 'rb') as f:
pic = f.read()
print(pic)
要注意读取二进制文件有以下两点:
1、要用变量来接收,具体原因上篇文章我已经讲了
2、不能写编码格式,因为是二进制文件
二进制写入:
with open(r'D:\PycharmProjects\firstproject\遮天\R-C.jpg', 'rb') as f:
pic = f.read()
# print(pic)
with open(r'D:\PycharmProjects\firstproject\遮天\R-C2.jpg', 'wb') as f:
f.write(pic)
这篇文章里面代码的用法和上篇文章除了是用with open方法,其他的用法都是一样的,大家可以参考上一篇来对比一下,这样印象更深刻,更容易理解,还有w+方法和r+方法我没演示,感兴趣的可以自己试一试。要注意里面的代码的路径和文件是我自己的,你们电脑上的要自己创建,图片也要自己找,不明白的可以私信我。
最后感谢大家的支持!