字符编码及文件操作

本文深入浅出地介绍了字符编码的基本概念,包括unicode与utf-8的区别与联系,以及这两种编码方式的特点。同时,文章还详细解释了如何在Python中实现字符串的编码与解码,并提供了文件操作的具体步骤和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符编码

'''
重点:什么是字符编码
人类能识别的是字符等高级标识符,电脑只能识别0/1,要完成人与机器之间的信息交流
一定需要一个媒介,进行两种标识符的转化(两种标识符的对应关系)


对应关系形成的结构称之为:编码表
乱码:存数据与读数据采用的编码表不一致

编码表:人能识别的字符标识符与计算机能识别的01标识符相对应的结构

万国编码:unicode/utf-8
1、采用的都是unicode编码表
2、unicode以定长(3字节)存储数据
3、utf-8以变长(1-6字节)存取数据

unicode与utf-8采用的是同一张编码表,utf-8是unicode编码表的体现方式,变长存储数据
变长优点:(大量数据都是以英文存在,所以utf-8空间更小),传输速度更快

'''

三种字符串

unicode字符串,默认字符串
s1 = u'asjdnk鸟蛋\n你好'

字节字符串
s2 = b'abc123\xb7\xb7'

原义字符串:不对字符串内部做任何操作
s3 = r'asjdnk鸟蛋\n你好'

编码与解码   网络编程中,服务器和浏览器只认bytes 类型数据

s = '123呵呵呵'
n_b = bytes(s,encoding='utf-8')
print(n_b)

b = b'123\xe5\x91\xb5\xe5\x91\xb5\xe5\x91\xb5'
n_s = str(b,encoding='utf-8')
print(n_s)

重点:*****
将u字符串编码成b字符串
print(u'你好'.encode('utf-8'))
将b字符串解码成u字符串
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))

文件操作

'''
文件:硬盘中一块存储空间(虚拟文件)
文件操作:根据文件名来操作硬盘的那块存储空间,操作方式:读/写

一、使用文件的步骤
二、基本的读写
三、常用的方法(变量)
四、文件操作的案例
'''
一、使用文件的三步骤

1、打开文件
变量名 = 文件空间
open(文件路径  操作模式(读|写)  编码)
f = open(r'a.txt',mode='r',encoding='utf-8')


2、操作文件
date = f.read(2)  #将所有内容读取出来,如果设置读取长度,按规定字节长度读取数据
print(date)

一次读取一行
line = f.readline()
print(line)

按行一次性全部读出
lines = f.readlines()
print(lines )        # ['phs\n', 'shige\n', 'laingzai\n', '嘿嘿']

逐步一行一行读取     # 结果同上
l = []
for line in f:
    l.append(line)
print(l)

s = set()      # 去除重复的数据
for line in f:
    s.add(line)
print(s)

3、关闭文件    # 释放操作系统对文件的持有,变量f还被应用程序持有
f.close()

二、 模式
'''
主模式:r:读| w:写 |a :追加
从模式:b:按字节操作 | t : 按字符操作 | +:可读可写
了解:x : 异常| u :被遗弃
'''

基础写(w):
文件不存在:会新建文件,再操作文件
文件存在:会先清空文件,再操作文件

f = open(r'b.txt', mode='w', encoding='utf-8')
f.write('wawawawwaw,好开心')
f.close()

with open(r'b.txt', mode='w', encoding='utf-8') as f:
    f.write('2131465')

转载于:https://www.cnblogs.com/penghengshan/p/10600767.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值