1.文件读写过程
1. 打开文件
2. 向文件中写入内容;
3. 关闭文件
2.文件读写
如果文件很小, read() 一次性读取最方便;
如果不能确定文件大小,反复调用 read(size)
比较保险;如果是配置文件,调用 readlines()
二进制文件,用‘rb’模式打开即可
3.open函数的模式
r 以读的方式打开,定位到文件开头 , 默认的 mode
r+ 以读写的方式打开,定位文件开头 , 可以写入内容到文件
w 以写的方式打开,打开文件的时候会清空文件的内容,并且不能读
w+ 以读写的方式打开,定位到文件头,并且打开文件的时候也会清空文件的内容
a 以写的方式打开,定位到文件的末尾,是一个追加的操作 , 但并不允许读
a+ 以读写的方式打开,定位到文件的末尾,追加的方式
4.文件的其他操作
f.flush()函数,将缓冲区的内容写入到硬盘中
f.seek(offset[,whence]),offset 表示移动多少字节, whence 为 1 的时候表示相对于当前位置移动的;当 2 的时候从文件的末尾往后移动,但不一定所有的平台都支持;默认为 0 表示从文件开头往后移动
f.tell()函数,返回当前文件指针的偏移量
5.with语法
一般情况打开一个文件,经过操作之后,都要显式的执行xx.close() 将文件关闭 .with 用于需要打开、关闭成对的操作,可以自动关闭打开对象。
本文转自 red777 51CTO博客,原文链接:http://blog.51cto.com/12314711/1947709
![XNYWIYAK5V1(5{}BE]I%@%7.png wKiom1lozQvxE-OkAAAZ8UD4Btg732.png](https://ucc.alicdn.com/77hzxr65teps2/developer-article542378/20241019/c77d0cbf9ce54d11ad5835e4cc9da8df.png?x-oss-process=image/resize,w_1400/format,webp)
![)V~KNBOT_QZ]B[K@(25ZH27.png wKioL1lozWXwanXWAAAbhFv6s60485.png](https://ucc.alicdn.com/77hzxr65teps2/developer-article542378/20241019/e710f240a44e49ec8b134ccec4cc3944.png?x-oss-process=image/resize,w_1400/format,webp)


![M`~N4[%AH1]MK~~R[K~[6DM.png wKioL1loz4CBkOA6AABTuA5Y1G0479.png](https://ucc.alicdn.com/77hzxr65teps2/developer-article542378/20241019/19ec05e2c1d540c8acc36daf3e28097d.png?x-oss-process=image/resize,w_1400/format,webp)


![PMMU}JEBC}]XFAN[~)QW%QJ.png wKiom1lozzuSFCOaAAAy0dB2OGM122.png](https://ucc.alicdn.com/77hzxr65teps2/developer-article542378/20241019/fb508c99fca34f83be8862506b35bb3b.png?x-oss-process=image/resize,w_1400/format,webp)