首页 > 代码库 > python文件操作
python文件操作
#内存中使用的编码是unicode,用空间换时间(程序都需要加载到内存才能运行,因而内存应该是尽可能的保证快)
字符编码
#硬盘中或者网络传输用utf-8,网络I/O延迟或磁盘I/O延迟要远大与utf-8的转换延迟,而且I/O应该是尽可能地节省带宽,保证数据传输的稳定性。
1.用什么编码存 encode,就要以什么编码取 decode
ps 内存固定使用unicode编码 我们可以控制的是往硬盘存储或基于网络传输
2.数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式
python3解释器默认的字符编码是utf-8
python2解释器默认的字符编码是ASCII
#unicode ---->encode(utf-8) ---->bytes
bytes,就是可以往文件内存放火基于网络纯属
#bytes ----》decode(gbk)---->unicode
python3字符串被识别为unicode python3中字符串encode得到bytes
python2字符串被识别为bytes
python2在字符串前加u,就是unicode编码格式
知识点
对文件访问一般有三种模式:读模式(‘r‘)、写模式(‘w‘)或追加模式(‘a‘).另外两种可以混合使用的模式:二进制模式(‘b‘),读/写模式(‘+‘)。如:‘rb‘ 读取二进制文件模式 ‘r+‘ 可读可写模式
写文件的流程 1 可写方式打开文件 2 写文件操作 3 关闭文件
读文件流程 1 只读方式打开文件,2 读取文件 (使用readline方法读取文件的每一行。这个方法返回包括行末换行符的一个完整行。所以,当一个空的字符串被放回的时候,即表示文件末已经到达,浴室我们停止循环。) 3 关闭文件
file.readlines()和f.read()只适用读取较小的文件
二 操作
打开文件
open("ptahname", "model", "buffering"),后面的两个参数可选,不填model,默认以只读方式打开,buffering:0/false无缓冲 1/true 有缓冲
file("pathname", "model") ps:python3不支持file函数
两者的区别是用open函数,文件必须存在,否则会报文件找不到的错误;用file函数,文件存在则打开,不存在就创建
补充:open函数model选择a模式 文件不存在,就会创建
常见的mode取值组合
1、r或rt 默认模式,文本模式读
2、rb 二进制文件
3、w或wt 文本模式写,打开前文件存储被清空
4、wb 二进制写,文件存储同样被清空
5、a 追加模式,只能写在文件末尾
6、a+ 可读写模式,写只能写在文件末尾
7、w+ 可读写,与a+的区别是要清空文件内容
8、r+ 可读写,与a+的区别是可以写到文件任何位置
读写文件
f.read()读取所有内容;f.read(4) 读取前4个字符 f.write() 醉如文件 f.tell()返回读取文件内字符长度
移动光标
f.seek(offset,whence)
offset:将光标移动到offset定义的下标位置,在此处开始插入或读取文件 whence偏移量表示从什么位置开始算offset,默认为0----》 表示从文件头开始算起,1:表示相对于当前位置的移动, offset可以是负数 2:光标从文件尾处开始算起
python文件操作