[TOC] >[success] # 编码基础 ~~~ 1.八位01的形式表示一个字节,一共是2**8 =256 就形成了ascii 格式 2.为了表示更多国家的文字出现了Unicode,32位表示一个字符 3.后来2**32位占用空间太多,出现了utf-8,一个字符最少用8位去表示,英文用8位 一个字节,欧洲文字用16位去表示两个字节,中文用24 位去表示三个字节 4.gbk 中国人自己发明的,一个中文用两个字节 16位去表示。 ~~~ ~~~ ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000001 00000010 00000100 32位 四个字节 中:00000000 00000001 00000010 00000110 32位 四个字节 utf-8 A : 00100000 8位 一个字节 中 : 00000001 00000010 00000110 24位 三个字节 gbk A : 00000110 8位 一个字节 中 : 00000010 00000110 16位 两个字节 ~~~ >[danger] ##### 单位换算 ~~~ 注:01000001 八位数代表一个字节 1bit 8bit = 1bytes 1byte 1024byte = 1KB 1KB 1024kb = 1MB 1MB 1024MB = 1GB 1GB 1024GB = 1TB ~~~ >[danger] ##### python 编码 ~~~ py3: str 在内存中是用unicode编码。 bytes类型 对于英文: str :表现形式:s = 'alex' 编码方式: 010101010 unicode bytes :表现形式:s = b'alex' 编码方式: 000101010 utf-8 gbk。。。。 对于中文: str :表现形式:s = '中国' 编码方式: 010101010 unicode bytes :表现形式:s = b'x\e91\e91\e01\e21\e31\e32' 编码方式: 000101010 utf-8 gbk。。。。 ~~~ ~~~ s1 = 'ssss' # encode 编码,将str --> bytes, (),也是由于python默认是unicode 编码,因此也是将unicode 编码成其他格式 s11 = s1.encode('utf-8') s11 = s1.encode('gbk') print(s11) s2 = '中国' s22 = s2.encode('utf-8') print(s22) s22 = s2.encode('gbk') print(s22) # \xe4 表示一个字节,根据不同编码格式会 产生不同的字节数 打印结果: b'ssss' b'\xe4\xb8\xad\xe5\x9b\xbd' b'\xd6\xd0\xb9\xfa' ~~~ >[dnager] ##### 解码和编码的用法 ~~~ 1.encode() 编码,获取到的是编码之后的结果,bytes 2.decode() 解码,把bytes编程我们熟悉的字符串 ~~~ >[danger] ##### 绝对路径和相对路径 ~~~ 1.相对路径是相对于你当前程序所在的文件夹,../ 是上级目录的意思 2.绝对路径就是路径的全地址模式,从磁盘根目录寻找 ~~~ * 关于相对路径的小案例 ![](https://box.kancloud.cn/fafd7511fb8e8bac3fb78b4ae7923f1a_193x127.png) ~~~ 目标:我要在test.py 文件找到 file下的test 文件 1.首先应该获取当前文件的上级文件,当前文件在py的文件件,由于py和file 是同级的因此,先获取两个同级的上级,在找到test 2.写法:../file/test ~~~