字符编码

 

  字符编码

  文件处理

字符编码

  任何一个程序想要运行,必先要将程序从硬盘加载到内存中,然后CPU去内存里将指令取出执行,正在运行的应用程序产生的数据,必要先存在内存里

  字符编码只和文本文件有关,字符编码和视频、音频文件无关

  文本编辑器的输入和输出是两个过程

  输入的字符>>>>> (字符编码表)>>>>>二进制数字

ASCII码表

  用八位二进制表是一个英文字符 

  0000 0000

  1111 1111

GBK

  用2Bytes表示一个中文字符 依旧用1Bytes表示一个英文字符

  0000 0000 0000 0000

  1111 1111 1111 1111

万国码Unicode

  统一用2Bytes表示所有字符

  缺点:1.浪费存储空间

    2.I/O次数增减,程序运行效率降低(致命)

  当内存中的Unicode编码格式数据存到硬盘的时候,会按照utf-8编码

  会将Unicode的英文字符由原来的2Bytes变成1Bytes

  会将Unicode的中文字符由原来的2Bytes变成3bytes

  现在的计算机基本上内存是Unicode,硬盘是utf-8

(需要掌握的)

Unicode的两个特点

  1.用户在输入时,无论什么字符都能兼容万国字符

  2.其他国家编码的数据又硬盘读到内存的时候Unicode与其他各个国家的编码都有对应关系

(必须掌握的)

  数据由内存保存到硬盘

  1.内存中的Unicode格式二进制数>>>>>编码(encode)>>>>>utf-8格式的二进制数据

  硬盘中的数据由硬盘读到内存

  1.硬盘中的utf-8格式的二进制数据>>>>>解码(decode)>>>>>内存中的Unicode格式的二进制数据

  (******)

  人生真理:文本文件用什么编的就用什么解码

Python2中py文件的读入解释器默认用ASCII码(因为当时Unicode还没有流行)

Python3中py文件的读入解释器默认用utf-8

 

文件头

# coding:utf-8

  1.因为所有的编码都支持英文字符,所以文件头名才能够正常生效

  Python解释器开发软件,只要是中文,前面都需要加一个u,为的就是你不指定文件头时,能识别中文

  Python3中字符串默认就是Unicode编码格式的二进制数

 

补充:
1.pycharm终端用的是utf-8格式
2.windows终端采用的是gbk
八位二进制也叫8bit(******)
8bit = 1Bytes
1024Bytes = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB


文件处理 
 什么是文件?
操作系统提供给用户操作复杂硬件(硬盘)的简易的接口
  使用方法:f = open() f.read() f.close()
# 通过python代码操作文件
# r取消转义
# f = open(r'D:\Python项目\day07\a.txt',encoding='utf-8')  # 向操作系统发送请求  打开某个文件
# # 应用程序要想操作计算机硬件 必须通过操作系统来简介的操作
# print(f)  # f是文件对象
# print(f.read())  # windows操作系统默认的编码是gbk
# f.read()  # 向操作系统发请求 读取文件内容
# f.close()  # 告诉操作系统 关闭打开的文件
# print(f)
# print(f.read())

# 文件上下文操作
with open(r'D:\Python项目\day07\a.txt',encoding='utf-8') as f ,\
        open(r'D:\Python项目\day07\b.txt',encoding='utf-8') as f1:  # f仅仅是一个变量名 你把它看成是一个遥控器
    print(f)
    print(f.read())
    print(f1)
    print(f1.read())

 




 

posted on 2019-07-05 17:31  AbrahamChen  阅读(116)  评论(0编辑  收藏  举报

导航