python二进制数据
⑴ 在python中如何从二进制文件中读取信息
你是指读入二进制文件吧?x0dx0a可以使用numpy.fromfile(),也可以使用open(filename, 'rb'),其中的'b'就是二进制的意思,然后使用文件类型的read方法,读取一些字节,再用struct.unpack()方法来解析二进制。x0dx0a第一种方法是一次性读入文件(或文件的前多少个连续字节)到一个数组中,因此,灵活性差。x0dx0a第二种方法灵活性很高,可以读取任意位置(使用文件的seek()方法跳跃位置)的二进制数据,再使用struct.unpack()方法来进行各种二进制解析。x0dx0ax0dx0a提示:二进制文件是不保留存储方式的数据格式,因此,读二进制文件时应该知道二进制文件的存储格式。
⑵ 求助:python如何按位解析二进制数据
可以的,二进制是计算机内的表示方法,处理二进制数据是最基本的能力。
如果是二进制字符串转十进制:
>>>x='10101010'
>>>int(x,2)
170
如果是从文件或网络中获取的数据,要知道某一位是0还是1的话,获取的数据可以按字符读取,由于一个字符由8位二进制表示,分别读取1到8位的二进制值就可以了:
>>>get_char_bit=lambdachar,n:(char>>(8-n))&1#从高到低分别为第1~8位
>>>data=b'ab'#在python3中字符串默认是unicode,所以加上b前缀兼容
>>>#在python3中按字符读取byte字符串是数字,而python2读出来的却是字符,但bytearray是一致的都是数字
>>>data=bytearray(data)
>>>result=[]
>>>forcharindata:
foriinrange(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]
还有一种比较简单的方法是使用内置的bin函数
>>>data=bytearray(b'ab')
>>>result=[]
>>>forcharindata:
result.extend(bin(char)[2:].rjust(8,'0'))
>>>result
['0','1','1','0','0','0','0','1','0','1','1','0','0','0','1','0']
⑶ python中二进制数10101转为十进制数的表达式是什么
在Python中,可以使用int()函数将二进制数10101转换为十进制数。int()函数的第一个参数为要转换的数,第二个参数为进制。例如,要将二进制数10101转换为十进制数,可以使用以下表达式:
int('10101', 2)
该表达式会将二进制数10101转换为十进制数21。
⑷ python读取二进制并转为其他类型数据
file = open("test.spc", 'rb')
content = file.read()
unpack('H', binary_string) # unsigned short
unpack('d', binary_string) # double
unpack('Q', binary_string) # unsigned long long
unpack('l', binary_string) # long
pack('H',1) # unsigned short
pack('d', 5.23) # double
pack('Q', 11111111) # unsigned long long
pack('l', 1111) # long</pre>
详见官方文档: struct官方文档
⑸ python3字符串与二进制互相转换
python中,没有" 0-1 "形式的二进制类型,但我们依然可以存储二进制类型的数据。
利用字符串(string)类型,可以存储二进制数据。即:将二进制数据以字符串的形式存储。
下面分享一种字符串和二进制串互相转换的具体实现方法。
运行结果:
【END】
最后给大家推荐一个好东西:
每个python程序员想必都会很喜欢的东西,点击去看
喜欢吗?喜欢就点个赞吧~
⑹ python二进制最左边是0
这是因为早期只使用了127个字符,而7位就完全能够表示,所以最高位是0。
二进制,发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。
这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。数字电子电路中,逻辑门的实现直接应用了二进制,现代的计算机和依赖计算机的设备里都使用二进制。
⑺ python 怎么处理二进制文件
处理二进制数据离不开python的struct模块,struct理解上你可以把它理解为c语言的结构体,使用该模块的pack和unpack方法,可以很容易的把二进制数据转换为常用的类型数据,如整型、字符型等
结构体如下:
struct Header
{
unsigned short id;
char[4] tag;
unsigned int version;
unsigned int count;
}
⑻ Python读取二进制文件
实际项目中经常遇到读取二进制问题,Python下读取二进制文件一般用Python的文件打开读写相关函数和struct.
1。获取文件名filename,可用对话框,也可以直接手写
2。打开文件,这里中是打开,像看书一样,只是打开书,还没有看里面的内容,可以看,也可以不看
binFile=open(filename,'rb')
3。那就看看吧,binFile现在就是书的名字了。这里我们读入4个字,如果read()将读入整个文件
context=binFile.read(4)
4。读入之后问题来了,context包含四个字(4Bytes),但这四个字是加密的(二进制)。这时要找翻译struct.unpack
realContext=struct.unpack(format,context)
5。format的就是加密规则了,由1,2,4,8个字节组成其他类型,或者其他类型的数组。
a,b,c,d=struct.unpack('4c',context)
读入四个字符
对应格式参考 www.jianshu.com/p/5a985f29fa81
6。打开文件后用完一定要关闭,和看书一个样,看完后要合上,不合上后果自己去想
binFile.close()
7。查找内容,文件内容可以一个一个字的按顺序读出,但如果已经知道内容在什么位置,可以用查找方式读出。
binFile.seek(100)
context=binFile.read(4)
读出100位置后面的4个字,(101,102,103,104)
8。Python还提供也一些高级读写功能,如整行读取等