Python字符编码及文件介绍

  1. 字符编码

什么是字符编码:计算机内部只认识二进制,但是,我们人类语言有各种各样的样式,为了让计算机能够认识人类的语言,内部有一种机制就是将人类语言转为计算机语言。

字符编码只和文本文件和字符串有关,和音频文件,视频文件之类的都没有关系。

字符编码纪录了人类语言与数据之间的对应关系。

#二进制数即由0和1组成的数字,例如010010101010。计算机是基于电工作的,电的特性即高低电平,人类从逻辑层面将高电平对应为数字1,低电平对应为数字0,这直接决定了计算机可以识别的是由0和1组成的数字
  1. 字符编码的发展史

1. 一家独大

由于计算机最开始是由美国人发明的,美国人为了让计算机识别英文字符

ASCII码表:使用一个字节来记录一个英文字符

"""
                所有字符加起来一共127个字符
                使用一个字节(8位)可以记录255种字符
"""
 # 记忆:
            A-Z:65-90
            a-z:97-122
            0-9:48-57
            '''小写字母对应的数字一定大于大写字母'''
      # 补充:
        s = 'hello'
        s1 = 'world'
        print(s > s1)

2. 群雄割据

中国:我们中国人也要使用计算机,中国人也发明了一张编码表

GBK码:记录中文英文与数据之间的对应关系

'''

我们使用两个字节或者三个字节来记录中文字符

'''

2 ** 16 = 65535

韩国: 韩国人也要使用计算机,我们也发明了一张编码表、

Euc-kr表:只有韩文字符、英文字符与数字的一一对应关系

日本:

Shift_JIS表: 1、只有日文字符、英文字符与数字的一一对应关系

3. 一统天下

unicode表(万国码): # 存在所有语言中的所有字符与数字的一一对应关系,即兼容万国字符

'''结论:unicode码只在内存中起作用'''

# 使用至少2个字节保存数据

4.utf8

我们日常使用的字符编码都是utf8编码,但是,utf系列还有utf16 utf32... utf8mb4

# 一个字节保存一个英文字符
# 中文字符还是使用两个字节或者三个字节保存
# 补充:utf8只能存储正常的字符,utf8mb4可以存储表情
  1. 字符编码的使用

  1. 如何解决乱码问题

文本文件使用什么字符编码保存,打开的时候就要使用对应的字符编码。

  1. Python解释器版本不同带来的差异

Python2解释器使用的字符编码还是ASCII表

Python3使用的是utf8编码

  1. 添加文件模板

settings——>Editor->File and code template->python script

4. 编码与解码(核心)

4. 编码与解码(核心)

# 编码:

将人类能够读懂的语言转为计算机能够读懂的语言

# 解码:

将计算机能够读懂的语言转为人类能够读懂的语言

ss = '趁年轻,学技能,养活自己'

    # 编码:

    # bytes 字节,看成是二进制
    s1 = ss.encode('utf8')
    print(s1, type(s1)) # b'\xb3\xc3\xc4\xea\xc7\xe1\xa3\xac\xd1\xa7\xbc\xbc\xc4\xdc\xa3\xac\xd1\xf8\xbb\xee\xd7\xd4\xbc\xba'

    # 解码
    print(s1.decode('utf8'))

s = b'kevin123' # 只有英文字符和数字,要想编码的话,直接使用前缀b
print(s.encode('utf8'))
  1. 文件介绍

文件的类型:txt ,Word,Excel,py

···Python操作文件···

1.三步骤

打开文件

操作文件

关闭文件

2.打开文件

# 1. 打开文件
# open('文件路径', 'r', '字符编码')

f=open('a.txt', 'r', encoding='utf-8')
# print(f)  # <_io.TextIOWrapper name='a.txt' mode='r' encoding='utf8'>  文件句柄
print(f.read())
f.close()  # 关闭文件

"""
    语法格式:
        open('文件路径', '读写模式', '字符编码')
"""

# r的作用
'''当路径中可能存在有转移的字符时,字符串前面加上r来解决转义的问题'''
r'D:\python25\day09\a.txt'

5.文件的读写模式

r >>> read:只读。# 只能读不能写。

w >>> write: 只写 。# 只能写不能读。

a >>>append : 追加 。

1. r  >>> read: 只读 # 只能读,不能写
2. w  >>> write:只写 # 只能写,不能读
3. a  >>> append: 追加
# 读写模式
# 1. r
# 路径不存在,直接报错
# with open(r'a.txt', 'r', encoding='utf-8') as f:
#     print(f.read())


# 2. w
# 如果路径不存在,会新建一个文件出来
# with open('b.txt', 'w', encoding='utf-8') as f:
#     pass

# 1. 会先清空文件中得内容 2. 在进行写内容
'''写文件的是一定要小心,它会清空文件的'''
with open('a.txt', 'w', encoding='utf-8') as f:
    f.write('oldboy\n')
    f.write('oldboy\n')
    f.write('oldboy\n')
    f.write('oldboy\n')
    f.write('oldboy\n')

# a:追加模式
# 路径不存在的时候,也会新建一个文件出来
# with open('a.txt', 'a', encoding='utf-8') as f:
#     f.write('oldgirl\n')

6.debug

1. 在当前行的代码左侧点击一下,会出现一个红点(打断点)

2. 在代码编辑区域右键选择debug,不要在选择run

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值