为了将整数转换为二进制,我使用了以下代码:
>>> bin(6)
'0b110'
Run Code Online (Sandbox Code Playgroud)
什么时候擦除'0b',我用这个:
>>> bin(6)[2:]
'110'
Run Code Online (Sandbox Code Playgroud)
我能做些什么,如果我想表明6作为00000110代替110?
在python 3.2中,我可以轻松地更改对象的类型.例如 :
x=0
print(type (x))
x=bytes(0)
print(type (x))
Run Code Online (Sandbox Code Playgroud)
它会给我这个:
<class 'int'>
<class 'bytes'>
Run Code Online (Sandbox Code Playgroud)
但是,在python 2.7中,似乎我不能用同样的方法来做到这一点.如果我做相同的代码,它给我这个:
<type 'int'>
<type 'str'>
Run Code Online (Sandbox Code Playgroud)
如何将类型更改为字节类型?
我有一个二进制文件来读取,我想以适当的十六进制形式显示结果.代码如下:
file=open('myfile.chn', 'rb')
while 1:
b=fic.readline(1)
print(b)
file.close()
Run Code Online (Sandbox Code Playgroud)
结果如下:
b'\xff'
b'\xff'
b'\x01'
b'\x00'
.
.
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能改变结果如下:
FF
FF
01
00
.
.
Run Code Online (Sandbox Code Playgroud) 我已经制作了一个代码来读取二进制文件,如下所示:
file=open('myfile.chn','rb')
i=0
for x in file:
i=i+1
print(x)
file.close()
Run Code Online (Sandbox Code Playgroud)
结果如下(其中一部分): b'\x00\x00\x80?\x00\x00\x00\x005.xx\x00S\xd4\n'
如何检测此二进制文件的EOF?我想在找到EOF后打印().我试过这个,但什么都没发生.
if (x=='\n'):
print()
Run Code Online (Sandbox Code Playgroud)
(更新)
@aix:假设文件的结果很少,就像例子一样,每一行的末尾都有'\n',我想在每一行之间加一个空格.
b'\x00\x00\x80?\x00\x00\x00\x005.xx\x00S\xd4\n'
b'\x82\x93p\x05\xf6\x8c4S\x00\x00\xaf\x07j\n'
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?