可参考;https://www.cnblogs.com/gengcx/p/6713646.html
主要内容:
1.只读
2.只写
3.追加
4.r+读写
5.w+写读
6.a+写读
7.其他
一、使用python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取文件句柄。
打开文件的方式:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b默认的是r(只读)模式
二、只读操作(r,rb)
f = open(aa.txt,mode='r',encoding='utf-8')
content=f.read()
print(content)
f.close()
注意:encoding表示编码集,根据文件的实际保存编码进行获取数据,更多的时候使用的是utf-8
一种新的文件读取方式:
![](https://i-blog.csdnimg.cn/blog_migrate/4b5db284d21cf0592ffac283a8605111.png)
2. rb.读取出的数据是字节bytes类型,所以一般用来读取非文本文件,比如MP3,图像
,在rb模式下,不能选择encoding
f = open(CCZ/aa.txt,mode='rb') # 文件夹CCZ下的aa文件 ../表示上一层文件夹
bs=f.read()
print(bs.decode("utf-8"))
f.close()
3. 相对路径和绝对路径
../表示上一层文件夹
4.读取文件的方法:
1.read() :将文件全部读取出来。 弊端:文件不宜过大
2.read(n) :读取n个字节,如果继续读取或从当前位置继续而不是从头开始
f = open(CCZ/aa.txt,mode='rb') # 文件夹CCZ下的aa文件 ../表示上一层文件夹
bs=f.read(3) # 读取3个字节
print(bs.decode("utf-8"))
f.close()
5 其他操作
5.1seek(n) 光标移动到n位置,移动的单位是byte,如果是utf-8的中文部分要是3的倍数
一般,使用seek()都是移动到开头或者结尾
seek(0)
seek(0,2),seek()里面的第二个参数:从哪个位置进行偏移,默认是0,表示开头,1表示当前位置,2表示结尾。
![](https://i-blog.csdnimg.cn/blog_migrate/bc3bbea552fdf4feeee5d1e2d6311c90.png)
5.2 tell()使用tell()可以帮助我们获取当前光标在什么位置
f = open(CCZ/aa.txt,mode='r+') # 文件夹CCZ下的aa文件 ../表示上一层文件夹
f.seek(6) # 光标移动到6字节
bs=f.read(3) # 读取文件的3个字节
print(bs.decode("utf-8"))
f.close()
5.3 读取两个文件的内容。
![](https://i-blog.csdnimg.cn/blog_migrate/3c40632327895a20e0483c7d8f42b3dd.png)
5.4 readline()一次读取一行数据,每次读取的数据末尾都会有一个\n,需要用strip()方法来去掉
![](https://i-blog.csdnimg.cn/blog_migrate/f468a2f0e1333efa45d475a9b240814e.png)