计算机内部只识别二进制,但是用户在使用计算机的时候却可以看到格式各样的语言字符,字符编码记录了人类字符与数字对应关系的数据。字符编码只和文本文件和字符串有关 与视频文件 图片无关无关。
计算机最初是由美国人发明的,美国人为了能够让计算机识别英文字符
ASCII码:里面记录了英文字符与数字的关系,这套编码表所有的英文和符号加起来其实不超过127,之所以使用八位是为了后面发现新的语言。
中国
当计算机进入中国后中国人为了能让计算机识别中文,发明了另外一套编码表,GBK码表,记录了英文中文与数字的对应关系,对于英文还是使用一个字节,对于中文使用两个字节甚至更多字节。
日本
为了能够让计算机识别日文,也需要发明一套编码表。
shift_jis码:记录了日文 英文 数字的对应关系。
韩国人
为了能让计算机识别韩文 也需要发明一套编码表。
Euc_kr码:记录了韩文 英文日文 数字的对应关系。
为了能够实现不同国家之间的文本数据能够彼此无障碍交流,那就必须让编码进行一个个统一,即Unicode。它统一使用两个及以上字符记录与数字的对应关系。其中utf-8是其的优化版本。英文还是用一个个字节存储,中文使用三个字节或更多字节存储。
1.如何解决文件乱码的情况
文件当初以什么编码的,打开的时候就以什么编码解
2.Python解释器版本不同带来的编码差异
Python2.x 内部使用编码默认是ASCII
Python3.x内部使用的是utf-8
# 在使用Python2.x 解释器的时候字符串前面要加一个小u s=u'helloWord'
每天一个小技巧:
自定义文件模块内容:
file>>>settings>>>editor>>>file and code templates>>python script
3.编码与解码
编码 将人类能够读懂的字符按照指定的编码转换成计算机能读懂的二进制。
解码 将二进制数转换成人类能够读懂的文字,图片和字符。
1 s = '小张是大帅哥' 2 # 编码encode 3 res = s.encode('utf8') 4 print(res) 5 r1 = res.decode() 6 print(r1)
3.1 什么是文件
文件其实就是操作系统暴露给用户操作硬盘的“接口”。
3.2 代码如何操作文件
关键字 open
3.3 文件路径
相对路径与绝对路径,路径中出现了字母与斜杠的组合产生特殊含义如何取消,在路径前面加一个r。
3.4 步骤方法
1 # 打开文件 2 open('jason.txt') 3 open(r'd:\python\09\a.txt')
# with上下文管理(能够自动帮你close()) with open(r'a.txt','r',encoding='utf8') as f1: # f1=open() f1.close() print(f1.read())
3.5 文件读写模式
1 # r 只读模式 2 # 路径不存在直接报错 3 with open(r'b.txt', 'r', encoding='utf-8') as f: 4 print(f.read()) 5 # w 只写模式 6 # 路径不存在直接报错 7 with open(r'b.txt', 'w', encoding='utf-8') as j: 8 j.write('只写模式') 9 # a 只追加模式(追加内容) 10 with open(r'b.txt','a',encoding='utf-8') as l: 11 l.write('123')