首页 > 代码库 > 字符编码和文件处理

字符编码和文件处理

 

一、字符编码

   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(raaa.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

  

 

字符编码和文件处理