我正在尝试以二进制模式打开文件,以便我可以在某个位置操作它。
我试图通过以下方式获取二进制信息:
with open('file.txt', 'rb') as f:
data = f.read()
但是当我尝试将其打印出来时,我会得到一个十六进制和一些奇怪(对我而言)的混合字符,如下所示
...~\xeb\xdd{\xdf\xba\xf7^\xf7\xee\xbd\xd7\...
如何获取0和1的二进制信息,并能将0110 1001更改为1001 0110
答案 0 :(得分:0)
二进制数据只是数字。更重要的是,Python几乎以boolean
的方式处理byte
或int
。使用BytesIO
将允许您以数字流的形式访问文件,每个数字代表一个字节。
要在基数2中输入数字,请使用0b00000000
语法。要以相同方式查看号码,请使用"{:08b}".format(number)
。要将0b01101001
更改为0b10010110
,请使用~0b01101001 & 0xFF
。 ~
运算符翻转这些位,而& 0xFF
只是一个掩码,将int
的剩余24位归零。 (这是必要的,因为因为我们翻了所有32位,所有那些前导0现在都是1,我们根本不需要它。)