b代表字节bytes模式即字节模式。
以b模式读取文件时不能指定encoding,因为已近要求以字节的模式打开,但可以在打开并读取数据后解码。
字符串通过编码变为bytes,bytes通过解码变为字符串。
转为bytes的两种方式:
a = bytes("被转内容", encoding="utf8")
b = "被转内容".encode("utf8")
print(a, b)
字节模式存在的意义:
1.open语句默认以t的方式打开文件,即"rt"、“wt”、"at"的方式打开文件,如果文件不是文本形式的数据则无法以t的方式打开,但是可以以字节模式打开。
2.字节数据可以跨平台传输和处理。
3.b模式对Linux系统的作用不大,因为Linux系统默认就是以字节的方式处理数据的,对Windows系统作用较大。
实例
字节模式的读取
读取出来的是字节形式,想要得出字节对应的内容则必须指定解码方式。
#当前目录下有Test1.py文件且文件有内容
f = open("Test1.py", "rb")
data = f.read()
print(data)
print(data.decode("utf8")
f.close()
字节模式的写入
写入的内容必须是字节的形式,利用bytes()函数或字符串的.encode()方法都可以将目标字符串转化为编码。
f = open("Test2", "wb")
f.write(bytes("Hello\n", encoding="utf8"))
f.write("实验内容".encode("utf8"))
f.close()
字节模式的追加
同字节写模式要求相同,只是追加在文件末尾。
#当前目录下有Test3文件且文件有内容
f = open("Test3", "ab")
f.write("实验实验实验".encode("utf8"))
f.close()