在python中,如何读取二进制文件(这里我需要读取.chn文件)并以二进制格式显示结果?
答案 0 :(得分:2)
假设值以空格分隔:
with open('myfile.chn', 'rb') as f:
data = []
for line in f: # a file supports direct iteration
data.extend(hex(int(x, 2)) for x in line.split())
在Python中,最好使用open()
而不是file()
,文档明确说明了这一点:
打开文件时,最好使用open()而不是调用 文件构造函数直接。
rb
模式将以二进制模式打开文件。
答案 1 :(得分:2)
试试这个:
with open('myfile.chn') as f:
data=f.read()
data=[bin(ord(x)).strip('0b') for x in data]
print ''.join(data)
如果您只想要二进制数据,它将在列表中。
with open('myfile.chn') as f:
data=f.read()
data=[bin(ord(x)).strip('0b') for x in data]
print data
现在,您将拥有二进制数列表。你可以把它转换成十六进制数
答案 2 :(得分:0)
with file('myfile.chn') as f:
data = f.read() # read all strings at once and return as a list of strings
data = [hex(int(x, 2)) for x in data] # convert to a list of hex strings (by interim getting the decimal value)