我有一个文件,当file
命令运行时,有以下输出:
#file test.bin
#test.bin : data
#file -i test.bin
#test.bin: application/octet-stream; charset=binary
我想读取这个文件的内容,并将其转发给一个python库,该库接受这个读数据作为字符串。
file = open("test.bin", "rb")
readBytes = file.read() # python type : <class 'bytes'>
output = test.process(readBytes) # process expects a string
我已经尝试过str(readBytes)
,但是没有工作。我看到文件test.bin
中也有不可打印的字符串,因为strings test.bin
的输出产生的输出远远小于文件中存在的实际字节。
是否有一种方法来转换字节读成字符串?还是我在努力实现一些毫无意义的目标?
尝试使用Bitstring。它是读取位的好程序包。
# import module
from bitstring import ConstBitStream
# read file
x = ConstBitStream(filename='file.bin')
# read 5 bits
output = x.read(5)
# convert to unsigned int
int_val = output.uint
你的意思是?
output = test.process(readBytes.decode('latin1'))