我正在研究一个从二进制文件读取的Python应用程序,然后提取一个字节然后引用一个列表。这基本上就是我正在做的事情。
list = [x for x in range(0, 340)]
index = struct.unpack('<b', file.read(1))
print(list[index])
问题是我正在读取的文件,第8位表示正值,而不是使数字为负数。例如,我希望将b'11111111'读为255而不是它产生的负数。我不熟悉struct模块,不确定我是否在使用模块时出错了,或者如果它是Python的一个功能,我不知道如何为其创建变通方法。
答案 0 :(得分:2)
对于无符号字符,您需要使用B
格式字符,而不是b
(请参阅struct
模块文档中的Format Characters部分。自{{ 1}}总是返回一个值元组,即使格式字符串只指定了一个元素,也可以将unpack()
添加到表达式的末尾,如图所示,以检索第一个也是唯一的元素。
[0]