python中的二进制文件读写是以字节为基本单位的,如二进制文件读函数read()
返回的数据类型是bytes。而写二进制文件也必须用bytes类型。
一、bytes类型的定义
1、b'xxx'
用b'xxx'
直接定义:
2、int列表转换
0~255数值的列表可以直接转换。如果超出0~255这个范围,python运行时会报错。
a = bytes([0x68, 0x65, 0x6c, 0x6c, 0x6f])
print(a)
3、从字符串转换
用字符串的encode()
函数可以转换:
a = "hello".encode("ascii")
二、二进制文件的读写
1、二进制方式读文件:
f = open("xxx.dat", "rb")
d = f.read(3)
a = d[0]
b = d[1:]
s = d.decode('ascii')
2、二进制方法写文件:
f = open("xxx.dat", "wb")
s = "hello"
f.write(s.encode("ascii"))
l = [0x68, 0x65, 0x6c, 0x6c, 0x6f]
f.write(bytes(l))
f.write(bytes([0x65]))