加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 读取文本文件时的UnicodeDecodeError

发布时间:2020-12-20 13:50:20 所属栏目:Python 来源:网络整理
导读:我是 Python的初学者(我使用的是3.4).这是我的代码的相关部分. fileObject = open("countable nouns raw.txt","rt")bigString = fileObject.read()fileObject.close() 每当我尝试阅读此文件时,我得到: UnicodeDecodeError: 'charmap' codec can't decode by
我是 Python的初学者(我使用的是3.4).这是我的代码的相关部分.

fileObject = open("countable nouns raw.txt","rt")
bigString = fileObject.read()
fileObject.close()

每当我尝试阅读此文件时,我得到:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 82273: character maps to <undefined>

我一直在阅读,似乎与我的默认编码不匹配文本文件编码有关.我在另一篇文章中读到,您可以使用此方法读取具有特定编码的文件:

import codecs
f = codecs.open("file.txt","r","utf-8")

但你必须提前知道.问题是我不知道文本文件是如何编码的.一些帖子建议使用Chardet.我已经安装了它,但我不知道如何让它读取文本文件.

关于如何解决这个问题的任何想法?

解决方法

没有必要使用codecs.open();这是对Python 2的建议.

在Python 3中,open()接受一个编码参数:

fileObject = open("countable nouns raw.txt","rt",encoding='utf8')

当然,这确实需要您知道文件使用的编解码器.一般来说,Python并不是一个容易理解的方法;单个文件格式可能包含编解码器信息或已在给定编解码器上标准化,但如果您拥有通用文本文件,则必须确定创建它的内容以及用于编写数据的编解码器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读