字符编码
什么是字符编码
# 只跟文本文件和字符串有关,与其他无关,由于计算机内部识别二进制,但是用户在使用计计算机的时候却可以看到各式各样的语言字符。
# 字符编码:内部纪律了人类字符与数字对应关系的数据
字符编码的发展史
# 1.一家独大
计算机最初是由美国人发明,美国人为了能够让计算机识别英文字符,搞出来ASCII码
ASCII码:记录了英文字符与数字对应的关系,用一个字节来对应关系
# 英文字符和符号加起来不超过127 ,使用八位是为了后续发现新的语言无法添加.
"""0 = 48 , a = 97 , A = 65"""
# 2.群雄割据
中国:为了能够让计算机识别中文 我们需要发明另外一套编码表:GBK码
记录了英文中文与数字的对应关系
对于英文还是使用一个字节
对应中文使用两个字节甚至更多字节
"""两个字节不够表示出所有的中文,遇到生僻字可能需要更多位来表示"""
# 3. 天下一统
为了能够实现不同国家之间的文本数据能够彼此无障碍交流需要对编码统一
unicode(万国码)
统一使用两个及以上字符记录字符与数字的对应关系
# utf8 目前使用最多
ASCII码
插图 !!!
编码实操作
1如何解决文件乱码情况
# 文件最开始用什么编码编写,打开也需要以对应的编码解
2.python解释器版本不同也有编码差异
python2.x内部使用的编码默认是AXCII
# 文件头:coding:utf8
# 在python2中定义字符串前面要加一个小u
s = u'junjie'
python3.中内部使用utf8
"""
自定义文件模板内容
file
settings
Editor
file and code templates
python script
"""
3.编码和解码
编码:将人类能够读懂的字符安装指定的编码转换成数字
解码:将数字按照指定的编码转换成人类能够读懂的字符
s = '每天不要想太多 学就完事了 干就完了 奥利给!!!'
# 编码
# res = s.encode('utf8')
# print(res, type(res)) # bytes 在python中直接将该类型看成二进制数据即可
# 解码
# res1 = res.decode('utf8')
# print(res1)
文件操作
1.什么是文件?
文件其实是操作系统暴露给用户操作硬盘的的接口
2.代码如何操作文件
# 关键字 open()
三步走:
1.利用关键字open打开文件
2.利用其他方法操作文件
3.关闭文件
"""
文件路径:相对路径和绝对路径
路径中出现祖母与斜杠组合产生特殊含义,取消方式:
在路径字符串的前面加一个r
r'D:\py20\day08\a.txt'
"""
open('a.txt')
open(r'D:\py20\day08\a.txt')
res = open('a.txt', 'r', encoding='utf8')
print(res.read())
res.close() # 关闭文件释放资源
"""
open(文件路径,读写模式,字符编码)
文件路径与读写模式是必须的
字符编码是可选的(有些模式需要编码)
"""
# with上下文管理(能够自动帮你close())
with open(r'a.txt','r',encoding='utf8') as f1: # f1=open() f1.close()
print(f1.read())
"""以后代码操作文件 推荐使用with语法"""
文件读写模式
# 不全语法,没有实际含义 pass:
r : 只读模式(只能看不能改)
注意:如果路径不存在,直接报错
with open(r'b.txt', 'r', encoding='utf8') as f:
pass
路径存在: with open(r'a.txt', 'r', encoding='utf9') as f:
print(f.read()) # 读取文件所有内容
f.write('123') # 写文件内容
w : 只写模式(只能写不能看)
路径不存在:路径不存在自动创建
# with open (r'b.txt', 'w', encoding='utf8') as f:
pass
# 路径存在:1.先清空文件内容 2. 再执行写入操作
with open(r'a.txt', 'w', encoding='utf8') as f:
# f.read()
f.write('hello world!\n')
f.write('hello world!\n')
f.write('hello world!\n')
只追加内容
溜了溜了