我在这里阅读了许多相关的线程并深入研究了文档(Python 3.6),但没有找到为什么会发生这种情况(从Python shell中捕获):
with open('default_SysEx.syx', 'rb')
as f:
x = f.read(1)
x
b'\xf0'
with open('default_SysEx.syx', 'rb') as f:
y=f.read()
y[0]
240
type(x)
<class 'bytes'>
type(y[0])
<class 'int'>
什么解释单读字节?它是read(),是列表吗?序列/迭代/发电机/屈服/...?
答案 0 :(得分:0)
线索是您要打印的对象的类型。虽然x和y都是bytes
个对象,但您正在打印&#34;整个&#34;一个字符串x
,当您用y[0]
打印它的单个字节时。
您可能会发现x[0]
同样评估为240。
换句话说,type('\xf0')
为bytes
,但type('\xf0[0])
为int
。