【发布时间】:2017-01-13 06:03:12
【问题描述】:
我想读取 n 个字节的二进制文件并将每个字节存储在一个列表中。但是,当我这样做时,每个字节都会被转换为int。
首先我创建一个随机文件。
$ head -c 16 > random.file
然后我尝试阅读它:
>>> with open('random.file', 'rb') as fp:
... l = list(fp.read(8))
... print(fp.read(8))
...
b'@\xc2\xdf\x9f\xbbv\xa1\x90'
>>> l
[79, 233, 19, 116, 252, 50, 248, 144]
>>> type(l[0])
<class 'int'>
所以我知道我的字节值不能超过 255 但是 Python 自动转换的事实导致了问题,因为没有得到预期的类型。
这正常吗?我怎样才能避免这种情况?
【问题讨论】:
-
我不认为 Python 正在转换任何东西。解释器只是显示字节数组的十进制值
-
单字节
bytes对象列表的意义何在?你真的需要那个吗?可能不支持,因为它是一个罕见的用例...... -
您的预期输出究竟是什么?