文件-读写追加已经文件操作
Posted 丫丫625202
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件-读写追加已经文件操作相关的知识,希望对你有一定的参考价值。
读文件:r
f=open(\'test.txt\',mode=\'r\') for line in f: print(line) f.close()
print本身会换行,文本自带一个\\n,所以有换行
二进制读取:rb
写文件:w,w会创建新文件,有同名则删除内容再写入
f=open(\'test1.txt\',mode=\'w\',encoding="gbk") #unicode会自动转码位gbk f.write("unicode编码写入gbk文件") f.close()
二进制写文件:wb,wb也会创建文件,有同名则删除内容再写入
图片,音乐,视频等写入需用wb模式,二进制模式
二进制模式写字符串到问文件,会报错。提示需要二进制数据,非字符串
f=open(\'test2.txt\',mode=\'wb\') #unicode会自动转码位gbk f.write("unicode编码写入gbk文件") f.close()
解决以上问题,我们需要用encode方法,encode方法不传参python3默认用utf-8进行编码
f=open(\'test2.txt\',mode=\'wb\') #unicode会自动转码位gbk f.write("二进制模式写字符串到文件,需要先进行编码".encode(\'gbk\')) f.close()
文件追加:a 或ab,源文件用二进制模式追加必须用ab模式,否则乱码
f=open(\'test3.txt\',mode=\'a\',encoding=\'gbk\') #unicode会自动转码位gbk f.write("这是追加部分内容") f.close()
混合模式:
- r+,读的模式打开文件,支持写入,即读写模式
- w+,写的模式打开文件,支持读取,即写读模式,w+也会将原有文件清楚
文件操作:
- fileno()返回文件句柄再内核中的索引值,IO多路复用会用到
- flush()把文件从内存buffer里强制刷新到硬盘,close()时会自动保存到硬盘
写入文件,但是内容打开是空白
flush()后会存入硬盘
- readable()判断是否可读
以w模式打开,判断是否可读
- readline()读取一行,即遇到\\r或\\n结束
- seek()把操作文件的光标移动到指定位置
seek是按字节移动光标,至于移动多少个字符,与文件编码有关,gbk移动两个字节位一个字符,utf8移动三个字节算一个字符,read是按字符读取
- seekable()判断文件是否可进行seek操作,如设备是不可seek的
- tell()返回当前文件操作光标
- truncate()从指定位置截取文件到末尾,不指定位置则从当前位置截取
- writable()判断文件是否可写
修改文件
先f.seek(),再write()会替换文件,而且可能会存在乱码。所以修改需全部读入内存再进行修改,之后再保存覆盖。
以上是关于文件-读写追加已经文件操作的主要内容,如果未能解决你的问题,请参考以下文章