字符编码 | 文件操作
内容概要
- 字符编码
- 文件操作
字符编码
-
只跟文本文件和字符串有关,与视频文件图片文件等无关
-
什么是字符编码
由于计算机内部只识别二进制,但是用户在使用计算机的时候却可以看到各式各样的语言字符
字符编码:内部记录了人类字符与数字对应关系的数据 -
字符编码发展史
1.一家独大
计算机最初是由美国人发明的,为了能让计算机识别英文字符
ASCII码:里面记录了英文字符与数字的对应关系
用一个字节来时对应关系
所有的英文字符和符号加起来不超过127,使用8位是为了后面发现新的语言2.群雄割据
为了能够让计算机识别中文,我们需要发明新的编码表
GBK码:记录了英文中文与数字的对应关系3.天下一统
为了实现不同国家之间的文本数据能够彼此无障碍交流需要对编码同一
unicode(万国码):同一使用两个及以上字符记录字符与数字的对应关系
utf8(万国码的优化):英文还是一个字节存储,中文使用三个或更多字节存储
现在默认使用的编码是utf8
字符编码实操
-
如何解决文件乱码的情况
文件当初以什么编码编写的,打开的时候就用什么编码解 -
python解释器不同版本带来的编码差异
python2.x内部使用的默认编码是ASCII
文件头:coding:utf8
在python2中定义字符串前面要加一个小写的u
a = u'hahaha'
python3内部默认使用utf8
自定义文件模板内容
file>settings>Editor>flie and code templates>python script -
编码与解码
编码:将人类能够读懂的字符按照指定的编码转成数字
解码:将数字按照指定的编码转成人类能够读懂的字符
s = '哈哈哈'
res = s.encode('utf8') # 编码
print(res, type(res))
res1 = res.decode('utf8') # 解码
print(res1, type(res1))
文件操作
-
什么是文件
是操作系统暴露给用户操作硬盘的接口 -
代码如何操作文件
关键字 open()
三步走:1.利用关键字open打开文件 2.利用其他方法操作文件 3.关闭文件
文件路径:
相对路径与绝对路径
路径中出现了字母与斜杠的产生了特殊意义如何取消
在路径字符串前面加一个r
r'D:\py\08\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() f2.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='utf8') as f:
print(f.read()) # 读取文件所有的内容
-
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.write('hello')
-
a 只追加模式(追加能容)