微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 colab 中解码 gb-2312 文件

如何解决在 colab 中解码 gb-2312 文件

我正在尝试在 Colab 中打开一个使用 gb-2312 编码的文件。这是我成功在我的 IDE 中运行以读取和解码的代码

file = open(r'file.txt')
opened = file.read()
decoded = opened.encode('latin1').decode('gb2312')
print(decoded)

当我在 colab 中运行此代码时,出现以下错误

'utf-8' codec can't decode byte 0xc6 in position 67: invalid continuation byte

但是如果不先使用 read() 或 list() 就无法解码,否则我会收到以下错误

'_io.TextIOWrapper' object has no attribute 'encode'

这似乎是一个 catch-22。这是 Colab 的错误还是有更好的方法解决这个问题?

解决方法

打开文件时的默认值是 rt(读取,文本模式)并使用由 locale.getpreferredencoding(False) 返回的特定于操作系统的默认编码。使用 encoding 参数覆盖默认值(显示为 utf-8):

with open('file.txt',encoding='gb2312') as file:
    data = file.read()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。