编码和文件读写

1、编码

概念
(1)编码:让只认识0和1的计算机,能够理解我们人类使用的语言符号,并将数据转换为二进制进行存储和传输。
(2)编码表:从人类语言到计算机语言转换的形式(计算机世界的字典)
1.1 二进制
位:用来存放一位0或1,就是计算机里 最小的 存储单位,也叫bit
字节:8个比特构成一个【字节】(byte/B),这是计算机里 最常用的 单位。

在这里插入图片描述
1.2 编码表
在这里插入图片描述
1.3 encode()和decode()
用法:
在这里插入图片描述
1~2行是encode()的用法,3-4行是decode()的用法

print('吴枫'.encode('utf-8'))
print('吴枫'.encode('gbk'))
print(b'\xe5\x90\xb4\xe6\x9e\xab'.decode('utf-8'))
print(b'\xce\xe2\xb7\xe3'.decode('gbk'))
>>>
b'\xe5\x90\xb4\xe6\x9e\xab'
b'\xce\xe2\xb7\xe3'
吴枫
吴枫

将人类语言编码后得到的结果,有一个相同之处,就是最前面都有一个字母b,比如b’\xce\xe2\xb7\xe3’,这代表它是bytes(字节)类型的数据。我们可以用type()函数验证一下:

print(type('吴枫'))
print(type(b'\xce\xe2\xb7\xe3'))
>>>
<class 'str'>
<class 'bytes'>

所谓的编码,其实本质就是把str(字符串)类型的数据,利用不同的编码表,转换成bytes(字节)类型的数据。

编码结果中除了标志性的字母b,你还会在编码结果中看到许多\x, \x是分隔符,用来分隔一个字节和另一个字节。
在这里插入图片描述
网址里面有好多的%,它们也是分隔符,替换了Python中的\x。比如像下面这个,它的意思就是在百度里面,搜索“吴枫”,使用的是UTF-8编码。

https://www.baidu.com/s?wd=%E5%90%B4%E6%9E%AB

此外,用decode()解码的时候则要注意,UTF-8编码的字节就一定要用UTF-8的规则解码,其他编码同理,否则就会出现乱码或者报错的情况。

2、文件读写

2.1 读取文件
在这里插入图片描述
练习
首先,我们先在桌面新建一个test文件夹,然后在文件夹里新建一个名为abc的txt文件,在里面随便写点儿什么,比如周芷若、赵敏。
然后,用VS Code新建一个open.py的Python文件,也放在test文件夹里,我们就在这里写代码。
步骤:
**【第1步-开】使用open()函数打开文件。**语法是这样的:

file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8')

file1这个变量是存放读取的文件数据的,以便对文件进行下一步的操作。
open()函数里面有三个参数:

'/Users/Ted/Desktop/test/abc.txt'
'r'
encoding='utf-8'

第一个参数是文件的保存地址
要找到你的文件地址,只需要把你要打开的文件直接拖到编辑器终端的窗口里,就会显示出文件地址,然后复制一下就好。

文件的地址:
1、相对路径:指的就是【相对于当前文件夹】的路径,也就是你编写的这个py文件所放的文件夹路径!
如果你要打开的文件和open.py在同一个文件夹里,这时只要使用相对路径就行了,而要使用其他文件夹的文件则需使用绝对路径。

2、绝对路径:拖到终端获取的地址,是最完整的路径。

这两种地址,Mac和Windows电脑还有点不太一样,下面我就帮大家捋一捋。
(1)Mac系统
假如txt文件和py文件都放在桌面的test文件夹里 (在这种情况下,写绝对和相对路径都是可以的):

在这里插入图片描述
将txt文件拖入终端窗口,获得文件的绝对路径:
在这里插入图片描述
复制文件地址:
在这里插入图片描述
那么当我用open()函数打开的时候,就可以写成:

open('/Users/Ted/Desktop/test/abc.txt')   #绝对路径
open('abc.txt')    #相对路径
#相对路径也可以写成open('./abc.txt')

假如现在这个txt文件,是放在test文件夹下面一个叫做word的文件夹里,绝对路径和相对路径就变成:

open('/Users/Ted/Desktop/test/word/abc.txt')#绝对路径不变
open('word/abc.txt')#注意相对路径的写法

(2)Windows系统
Windows系统里, 常用\来表示绝对路径,/来表示相对路径 , 所以当你把文件拖入终端的时候,绝对路径就变成:

C:\Users\Ted\Desktop\test\abc.txt

但是呢,别忘了\在Python中是转义字符,所以时常会有冲突。为了避坑,Windows的绝对路径通常要稍作处理,写成以下两种格式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值