字符编码和with 和文件打开模式

字符编码和with 和文件打开模式

1.字符编码

1.1 什么是字符编码?
人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等
1.2 字符编码表的发展史 (了解)
一、一家独大         二 、诸侯割据、天下大乱            三、分久必合   逐渐统一
1.3 编码与解码
由字符转换成内存中的unicode,以及由unicode转换成其他编码的过程,都称为编码encode
由内存中的unicode转换成字符,以及由其他编码转换成unicode的过程,都称为解码decode

>若想保证不乱码
    >1、保证存不乱
        >存入硬盘的编码格式要能识别输入的字符

    >2、保证读不乱
        >存取硬盘用得都是同一种字符编码格式

    >3、往硬盘存的新文件以后都存成utf-8格式
    
python3解释器默认读文件的编码格式是utf-8
python2解释器默认读文件的编码格式是ASCII

推荐用python3解释器,因为python3解释器存字符串类型的值会存储unicode格式
如果用到python2解释器,记得在字符串类型前加前缀u

2.with用法

with open('db.txt',mode='rt',encoding='utf-8') as f:
写了with之后可以不用关闭f.close     f可以被循环打印出来  可以进行read 或者write  并返回一个文件对象赋值给一个变量f

3.文件打开模式

# 文件的打开模式分为两大类
 一 控制文件读写内容
 t(默认):无论读写都是以字符串为单位的,必须指定encoding参数
 b:无论读写都是以bytes为单位的

 二 控制文件读写操作
 r(默认):只读模式
 w:只写 
 a:只写(追加写)新写的内容加到旧的内容后面

 	 前面的r代表rawstring原生的字符串,\没有转移的意思  只是个字符
  r:如果不存在则报错,如果文件存在则指针置于文件开头
 with open(r'a.txt',mode='rt',encoding='utf-8') as f:
      print(f.read())
      print('='*50)
      print(f.read())
      for line in f:
          print(line)

     f.write("你好")  # 报错  不能写



  w:如果不存在则创建空文档,如果文件存在则清空,创建一个新文档覆盖掉旧的文档,指针置于文件开头
 with open('a.txt',mode='wt',encoding='utf-8') as f:
      f.write("你好啊1\n")
      f.write("你好啊2\n")
      f.write("你好啊3\n")
     print(f.read())  # 报错   不能读


 a:如果不存在则创建空文档,如果文件存在则加到后面,指针置于文件末尾
 with open('c.txt',mode='at',encoding='utf-8') as f:
      f.write("你好啊1\n")
      f.write("你好啊2\n")
      f.write("你好啊3\n")

     print(f.read())  # 报错  不能读
posted @ 2021-08-04 16:44  迪迦张  阅读(76)  评论(0编辑  收藏  举报