字符编码和文件处理
Posted 博
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符编码和文件处理相关的知识,希望对你有一定的参考价值。
一、字符编码
1.用什么编码encode就用什么解码decode
ps:内存固定使用unicode编码
我们可以控制的编码是往硬盘存放或基于网络传输
python3解释器默认的字符编码是utf-8
py2解释器默认的字符编码是ASCII
2.数据最先产生于内存,是unicode格式,要想传输需转成bytes格式
#unicode-------->encode(utf-8)----------->bytes
拿到bytes就可以往文件存放或基于网络传输
#bytes------->decode(utf-8)---------->unicode
3.py3中的字符串encode得到bytes
二、文件处理
open:
1.会像操作系统,发起系统调用,操作会打开一个文件
2.在Python程序中会一个值指向操作系统打开的那个文件,我们可以把该值赋值给一个软件变量
#回收资源
1.f.close()关闭操作系统打开的文件,即2回收操作系统的资源(必要的)
2.del f:没必要做自己去做,在py程序运行完之后,会自动清理与该程序有关的所有内存空间
文本文件:只读模式
f=open(r‘aaa.py‘,‘r‘,encoding=‘utf-8‘) f.read() print(f.readlines())#文件所有的行都进来 print(f.readline(),end=‘ ‘)#一行一行的读 f.close()
只写模式,文本文件不存在则创建空文件,文件存在则清空
f=open(‘new1_txt‘,‘w‘,encoding=‘utf-8‘) f.write(‘11111111\n‘) f.writelines([‘23222\n‘,‘555555\n‘])#同时写多行 f.writable()#没有弄懂f.writable()的作用 print(f) f.close()
文本文件,只追加模式,文本文件不存在则创建,文件存在则清除
f=open(‘new2_txt‘,‘a‘,encoding=‘utf-8‘) print(f.readable()) print(f.writable()) f.write(‘3333\n‘) f.writelines([‘444444444\n‘,‘555555\n‘]) f.close()
rb
f=open(‘aaa.py‘,‘rb‘) print(f.read().decode(‘utf-8‘)) 复制图片 f=open(‘28.jpg‘,‘rb‘) data=f.read()
wb
f=open(‘new3_txt‘,‘wb‘) f.write(‘aaaa\n‘.encode(‘utf-8‘)) f=open(‘29.jpg‘,‘wb‘) f.write(data)
ab
f=open(‘new3_txt‘,‘ab‘) f.write(‘aaaaaa\n‘.encode(‘utf-8‘))
上下文管理
with open(‘aaaa.py‘,‘r‘,encoding=‘utf-8‘) as read_f, open(‘aaaa_new.py‘,‘w‘,encoding=‘utf-8‘) as write_f: data=read_f.read() write_f.write(data)
所有的数据自带布尔值
修改文本文件用replace
以上是关于字符编码和文件处理的主要内容,如果未能解决你的问题,请参考以下文章