理解rb模式和read()的问题



我有一个名为" testinput.txt "的.txt文件,其中包含一个由八个零组成的字符串。没有别的了。

在python中执行以下操作将值48打印到终端。有人能解释一下这是怎么回事吗?(我希望输出0)

f = open('testinput.txt','rb')
print(f.read(1)[0])

希望有人能帮助澄清这一点。

提前感谢。

bytes的文字和表示基于ASCII文本,bytes对象实际上表现为不可变的整数序列,序列中的每个值都被限制为0 <= x <256年[…]。这样做是为了强调,虽然许多二进制格式包含基于ASCII的元素,并且可以用一些面向文本的算法有效地操作,但对于任意二进制数据来说,这通常不是这种情况(盲目地将文本处理算法应用于不兼容ASCII的二进制数据格式通常会导致数据损坏)。

https://docs.python.org/3/library/stdtypes.html字节

因此,访问bytes内的单个偏移量会给您一个数字(数字字节值;参见上面强调的部分)。访问bytes序列将得到bytes序列:

>>> b'0'
b'0'
>>> b'0'[0]
48
>>> b'0'[0:1]
b'0'

相关内容

最新更新