44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
|
from base64 import decode
|
|||
|
|
|||
|
|
|||
|
def write_bin_file(bin_path):
|
|||
|
with open(bin_path, 'wb') as f:
|
|||
|
f.write(b'Hello BinFile')
|
|||
|
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
path = "5.文件与IO/4.bin_file.bin"
|
|||
|
|
|||
|
write_bin_file(path)
|
|||
|
# 如果想要打开二进制文件,那就需要做'rb'模式
|
|||
|
with open(path, 'rb') as f:
|
|||
|
print(f.read())
|
|||
|
|
|||
|
# 在打印的时候也有差异,要记得先utf-8转码,不然出来的是ascii
|
|||
|
a = b'Hello BinFile'
|
|||
|
for i in a:
|
|||
|
print(i, end=' ')
|
|||
|
print()
|
|||
|
|
|||
|
for i in a.decode('utf-8'):
|
|||
|
print(i, end='')
|
|||
|
print()
|
|||
|
|
|||
|
# C语言结构体和数组这种自带缓冲区接口的东西,可以直接读写文件,而不用先用encoder编码
|
|||
|
import array
|
|||
|
a = array.array('i', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
|
|||
|
# 往文件里写array
|
|||
|
with open(path, 'wb') as f:
|
|||
|
f.write(a)
|
|||
|
|
|||
|
# 直接把bin array从文件里薅出来塞到b的缓冲区
|
|||
|
b = array.array('i', [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
|
|||
|
with open(path, 'rb') as f:
|
|||
|
f.readinto(b)
|
|||
|
|
|||
|
print(b)
|
|||
|
|
|||
|
# 但是这么干有风险,要谨慎应对
|
|||
|
|
|||
|
|