python 二进制文件读写

前言:emacs打开文件真的很快,用记事本打开一个70M的txt文件卡了很久,emacs秒开,无卡顿。

int8 [128,127]

import numpy
i = numpy.int8(0) ###    i=0
i = numpy.int8(127) ###    i=127
i = numpy.int8(128) ###   i= -128
i = numpy.int8(129) ###   i= -127
i = numpy.int8(-129) ###  i= 127
i = numpy.int8(-130) ###  i= 126
i = numpy.int8(-256) ### i = 0

我们可以使用类似于圆形时钟表盘的图来记忆,如下图:

python 二进制文件读写_第1张图片

红色代表真实值,灰色代表 numpy.int8(X) 代表 X 的数值;

原码 反码 补码
127 01111111 01111111 01111111
-127 - 10000000 10000001
-128 - 10000000

下面是一个读写二进制文件的例子:

from struct import unpack
import struct
matfn = "CH20"
fid=open(matfn,'rb')
fw = open("rust.txt",'w')
while True:
    tmp = struct.unpack("h",fid.read(2))
    if len(tmp) == 0:
        break
    print (tmp[0])
fid.close()

读取文件的时候需要知道保存二进制的格式,譬如是几个字节之类,关于unpack的参数可以参考这篇博客:嘎啦

你可能感兴趣的:(二进制)