python怎么处理二进制流

Python011

python怎么处理二进制流,第1张

可以的,二进制是计算机内的表示方法,处理二进制数据是最基本的能力。

如果是二进制字符串转十进制:

>>>

x

=

'10101010'

>>>

int(x,

2)

170

如果是从文件或网络中获取的数据,要知道某一位是0还是1的话,获取的数据可以按字符读取,由于一个字符由8位二进制表示,分别读取1到8位的二进制值就可以了:

>>>

get_char_bit

=

lambda

char,

n:

(char

>>

(8-n))

&

1

#

从高到低分别为第1~8位

>>>

data

=

b'ab'

#

在python3中字符串默认是unicode,所以加上b前缀兼容

>>>

#

在python3中按字符读取byte字符串是数字,而python2读出来的却是字符,但bytearray是一致的都是数字

>>>

data

=

bytearray(data)

>>>

result

=

[]

>>>

for

char

in

data:

for

i

in

range(1,

9):

result.append(get_char_bit(char,

i))

>>>

result

[0,

1,

1,

0,

0,

0,

0,

1,

0,

1,

1,

0,

0,

0,

1,

0]

步骤:

1、标记文件开始,并用来识别文件自己和字节顺序。

2、Major:2Byte:当前文件主要的版本号。

3、Minor:2Byte:当前文件次要的版本号。

4、ThisZone:4Byte:当地的标准时间,直接写00000000。Python由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。