字符编码和文件处理

 

一、字符编码

   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

  

 

posted @ 2017-07-25 00:00  兰博~~  阅读(144)  评论(0编辑  收藏  举报