在《第9.3节 Python的文件内容读取:readline》中介绍了使用readline读取文件的处理,readline除了使用文本文件方式打开文件读外,也可以读取二进制方式打开的文件,但读取的数据返回的是bytes类型,如果涉及中文的处理,这种Bytes类型需要解码以后才能正常显示,一般使用GB2312或GBK模式解码。
下面的案例为用二进制方式打开一个中文文本文件,使用readline读取记录,使用解码前和解码后两种方式输出:
>>> def main():
fp = open(r"c: emp est.txt","rb")
while True:
line=fp.readline()
if not line:break
print("解码前:",line)
print('解码后:',line.decode('gbk'))
fp.close()
>>> main()
解码前: b'xb3xfcxd6xddxcexf7xbdxa7
'
解码后: 滁州西涧
解码前: b'[xccxc6] xcexa4xd3xa6xcexef
'
解码后: [唐] 韦应物
解码前: b'xb6xc0xc1xafxd3xc4xb2xddxbdxa7xb1xdfxc9xfaxa3xacxc9xcfxd3xd0xbbxc6xf0xbfxc9xeexcaxf7xc3xf9xa1xa3
'
解码后: 独怜幽草涧边生,上有黄鹂深树鸣。
解码前: b'xb4xbaxb3xb1xb4xf8xd3xeaxcdxedxc0xb4xbcxb1xa3xacxd2xb0xb6xc9xcexdexc8xcbxd6xdbxd7xd4xbaxe1xa1xa3
'
解码后: 春潮带雨晚来急,野渡无人舟自横。 >>>
老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!