You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中以rb模式读取txt文件返回48而非预期0的原因咨询

问题解答:为什么读取文件输出48而不是0?

嘿,这个问题其实很好理解,核心在于你用了二进制模式读取文件,我给你拆解清楚:

为什么输出是48?

当你用'rb'(二进制读模式)打开文件时,f.read(1)返回的是一个字节对象,比如b'0'。此时你访问这个字节对象的索引[0],得到的是这个字符对应的ASCII码值——而字符'0'的ASCII码正好是48,所以终端会输出48,而不是你预期的数字0。

怎么得到预期的数字0?

有两种简单的解决方法:

方法1:把字节转成字符串再转整数

先将读取到的字节解码成字符串,再转换为整数:

f = open('testinput.txt','rb')
byte_content = f.read(1)
print(int(byte_content.decode('utf-8')))  # 输出0
f.close()

方法2:用文本模式打开文件

直接使用'r'(文本读模式)打开文件,读取到的内容是字符串,再转成整数即可:

f = open('testinput.txt','r')
char_content = f.read(1)
print(int(char_content))  # 输出0
f.close()

额外小建议

推荐使用with语句来操作文件,它会自动帮你关闭文件,避免资源泄漏:

with open('testinput.txt', 'rb') as f:
    byte_content = f.read(1)
    print(int(byte_content.decode('utf-8')))

内容的提问来源于stack exchange,提问作者Aske Olesen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 20:57:37