文件这块,在实际的工作中应用很广泛,但是文件模式稍微应用不到位,不光做不到方便,还会找半天的问题,借此机会好好理一下文件中的各种访问模式及差别:
**r:**只读方式 ,如果文件不存在会报错;
r+:可读写。如果文件不存在会报错;
先读后写:读完后文件位置在最后,读后再写,会在文件的最后添加内容 ;读完后通过seek()将文件位置移动最前面再写,会覆盖部分内容,比如,文件本来存在5行,通过seek(0)移动后再写3行时,文件一共还是5行,只是前面的3行是后面写的内容。
先写后读:先写会覆盖掉部分文件本来存在的内容,再次读取时,由于写完文件位置的问题,读取的内容为写后到文件最后的内容;
rb:以二进制方式读取。如果不存在会报错。
w:只写方式, 如果文件不存在就创建,存在就覆盖(全部覆盖)
w+:可读写。如果文件不存在就创建
先写后读:写完后直接读,会因为文件位置在最后而读不到任何内容;
先读后写:由于写是完全覆盖写,因此先读是读不到任何内容的,读完再写,文件位置在最后面,直接读取也是读不到任何内容的。
wb:以二进制的方式写(写的内容前加上b),如果没有就创建
a:不存在就创建写入,存在就追加写入,不支持读
ab:不存在就创建并以进制式的方式写入,存在就以二进制的方式追加写入(注意,不支持writelines写入),不支持读
a+:不存在就创建写入,支持读
在操作文件过程中,一定要多注意文件位置的问题,不然容易造成读不到的问题,另外,对于覆盖写也要小心使用
超全面的测试IT技术课程,0元立即加入学习!有需要的朋友戳:
腾讯课堂测试技术学习地址
作者:kellyred
出处:https://blog.csdn.net/kellyred
欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接