11-24-day06-python入门-字符编码与文件

一:字符编码
1.什么是字符编码
文字符号-------------编码--------------------------------》数字
文字符号《-------------解码-------------------------------数字
2.为何要用字符编码
为了解决乱码问题:

1.存取都用同一张字符编码
2、为何要研究字符编码
为了解决乱码问题:
1、存取都用同一张字符编码表

3、储备知识

4、字符编码表的发展历程
1、一家独大
ASCII:只能识别英文字符
用8个bit对应一个英文字符

2、天下大乱
    GBK:能识别中文和英文
        用16个bit(2Bytes)对应一个字符

    shift-JIS

    Euc-KR
3、归于一统
    unicode:能识别万国字符
        用16bit(2Bytes)对应一个字符


    utf-8

5.运行python程序的三个阶段
1.先启动一个python解释器
2.python解释器会将文件内容从硬盘读入内存
3.python解释器会解释执行刚刚读入内存的代码,识别语法

总结:
    英文字符----》内存(ASCII格式的二进制数)----》硬盘(ASCII格式的二进制数)

中文、英文字符---》内存(GBK格式的二进制数)----》硬盘(GBK格式的二进制数)
日文、英文字符---》内存(Shif-jis格式的二进制数)--》硬盘(Shif-jis格式的二进制数)

    万国字符----》内存(unicode格式的二进制数)--》硬盘(utf-8格式的二进制数)

二:文件的打开方式

一:控制读写操作模式

r:只读===========>默认

w:只写

a:只追加写

二:控制读写内容的模式

t:读写都是文本格式,即读写都是用字符串========》默认

b:读写都是bytes格式,bytes等同于二进制

强调:

如果是t模式,一定记住加上encoding=“编码格式”

如果是b模式,一定记住别加encoding=“编码格式”

三 案例

3.1 案例1

r:在文件存在的时候,文件指针调到文件开头,文件不存在直接报错

f=open(“a.txt”,mode=“rt”,encoding=‘utf-8’)

# res=f.read()

# print(res)

f.close()

3.2 案例2

w:在文件存在的时候会清空文件,文件指针调到文件开头,文件不存在会创建空文档

f=open(“c.txt”,mode=“wt”,encoding=‘utf-8’)

# f.write(“aaaa\n”)

# f.write(“bbbb\n”)

# f.write(“cccc\n”)

f.write(“11111\n”)

f.close()

3.3 案例3

a:在文件存在的时候不会清空文件,文件指针调到文件末尾,文件不存在会创建空文档

f=open(“d.txt”,mode=“at”,encoding=‘utf-8’)

f.write(“6666666\n”)

f.write(“6666666\n”)

f.write(“6666666\n”)

f.write(“11111\n”)

f.close()

3.4 案例4:rb wb ab

f=open(“a.txt”,mode=‘rb’)

res=f.read()

print(res.decode(“utf-8”))

f.close()

f=open(“D:\fullstack16\day05\视频\01 本周内容.mp4”,mode=‘rb’)

res=f.read()

print(res)

f.close()

f=open(“a.txt”,mode=‘ab’)

f.write(“你好”.encode(‘utf-8’))

f.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值