python中的bytes数据类型及二进制文件读写
专栏:ExASIC May 5, 2025, 2:57 p.m. 56 阅读
python中的文件读写是以byte为基本单位的

python中的二进制文件读写是以字节为基本单位的,如二进制文件读函数read()返回的数据类型是bytes。而写二进制文件也必须用bytes类型。

image.png

一、bytes类型的定义

1、b'xxx'

b'xxx'直接定义:

a = b'hello'
print(a) # b'hello'

2、int列表转换

0~255数值的列表可以直接转换。如果超出0~255这个范围,python运行时会报错。

a = bytes([0x68, 0x65, 0x6c, 0x6c, 0x6f])
print(a) # b'hello'

3、从字符串转换

用字符串的encode()函数可以转换:

a = "hello".encode("ascii")

二、二进制文件的读写

1、二进制方式读文件:

f = open("xxx.dat", "rb")
d = f.read(3) # d是bytes类型
a = d[0] # 可以像字符串一样通过索引取出单个字符或者几个字符
b = d[1:]
s = d.decode('ascii') # bytes转字符串

2、二进制方法写文件:

f = open("xxx.dat", "wb")
s = "hello"
f.write(s.encode("ascii")) # 字符串转bytes再写入
l = [0x68, 0x65, 0x6c, 0x6c, 0x6f]
f.write(bytes(l)) # 写入0~255的列表
f.write(bytes([0x65])) # 写入单个ascii码的数字,当作列表写入

 

感谢阅读,更多文章点击这里:【专栏:ExASIC】
最新20篇 开设专栏