Python &引用;对于“行输入…”;UnicodeDecodeError中的结果:';utf-8';编解码器可以';t解码字节

Python &引用;对于“行输入…”;UnicodeDecodeError中的结果:';utf-8';编解码器可以';t解码字节,python,python-3.x,character-encoding,Python,Python 3.x,Character Encoding,这是我的密码 for line in open('u.item'): # Read each line 无论何时运行此代码,都会出现以下错误: UnicodeDecodeError:“utf-8”编解码器无法解码位置2892中的字节0xe9:无效的连续字节 我试图解决这个问题,并在open()中添加了一个额外的参数。代码如下所示: for line in open('u.item', encoding='utf-8'): # Read each line 但它再次给出了同样的错误。那我该怎么

这是我的密码

for line in open('u.item'):
# Read each line
无论何时运行此代码,都会出现以下错误:

UnicodeDecodeError:“utf-8”编解码器无法解码位置2892中的字节0xe9:无效的连续字节

我试图解决这个问题,并在open()中添加了一个额外的参数。代码如下所示:

for line in open('u.item', encoding='utf-8'):
# Read each line

但它再次给出了同样的错误。那我该怎么办?

您的文件实际上不包含UTF-8编码的数据;它包含一些其他编码。找出该编码是什么,并在
open
调用中使用它


例如,在编码中,
0xe9
将是字符
é

您的文件实际上不包含UTF-8编码的数据;它包含一些其他编码。找出该编码是什么,并在
open
调用中使用它


例如,在编码中,
0xe9
将是字符
é

,因为我找到了解决该问题的正确编码。编码是开放的,因此将
open(“u.item”,encoding=“utf-8”)
替换为
open(“u.item”,encoding=“ISO-8859-1”)
将解决问题。

因为我找到了解决该问题的正确编码。编码是开放的,因此将
open(“u.item”,encoding=“utf-8”)
替换为
open('u.item',encoding=“ISO-8859-1”)
将解决此问题。

这是在Python 3中转换CSV文件的示例:

try:
    inputReader = csv.reader(open(argv[1], encoding='ISO-8859-1'), delimiter=',',quotechar='"')
except IOError:
    pass

这是在Python 3中转换CSV文件的示例:

try:
    inputReader = csv.reader(open(argv[1], encoding='ISO-8859-1'), delimiter=',',quotechar='"')
except IOError:
    pass
尝试使用以下方法阅读:

尝试使用以下方法阅读:


如果您使用的是Python 2,则以下是解决方案:

import io
for line in io.open("u.item", encoding="ISO-8859-1"):
    # Do something
由于
编码
参数不适用于
打开()
,因此将出现以下错误:

TypeError:“encoding”是此函数的无效关键字参数


如果您使用的是Python 2,则以下是解决方案:

import io
for line in io.open("u.item", encoding="ISO-8859-1"):
    # Do something
由于
编码
参数不适用于
打开()
,因此将出现以下错误:

TypeError:“encoding”是此函数的无效关键字参数


以下内容对我也很有用。这将节省很多,哈哈哈-主要是如果使用语音识别API

例如:

file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1");

以下内容对我也很有用。这将节省很多,哈哈哈-主要是如果使用语音识别API

例如:

file = open('../Resources/' + filename, 'r', encoding="ISO-8859-1");

有时在使用
打开(文件路径)
时,如果
文件路径
实际上不是文件,则会出现相同的错误,因此首先确保您尝试打开的文件存在:

import os
assert os.path.isfile(filepath)

有时在使用
打开(文件路径)
时,如果
文件路径
实际上不是文件,则会出现相同的错误,因此首先确保您尝试打开的文件存在:

import os
assert os.path.isfile(filepath)

您可以通过以下方法解决此问题:

for line in open(your_file_path, 'rb'):

“rb”正在以二进制模式读取文件。阅读更多信息。

您可以通过以下方法解决此问题:

for line in open(your_file_path, 'rb'):
“rb”正在以二进制模式读取文件。请阅读更多信息。

此功能:

open('filename',encoding='latin-1')
或:

open('filename',encoding=“ISO-8859-1”)
这项工作:

open('filename',encoding='latin-1')
或:

open('filename',encoding=“ISO-8859-1”)
您可以这样尝试:

open('u.item', encoding='utf8', errors='ignore')
您可以这样尝试:

open('u.item', encoding='utf8', errors='ignore')


使用打开文件,选择“编码”或“编码”菜单以识别或从ANSI转换为UTF-8或代码页。

使用打开文件,选择“编码”或“编码”菜单来识别或从ANSI转换为UTF-8或代码页。

我认为编码错误的数据。或者仅仅不是UTF-8数据。使用python 3而不是python 2.7时,我们在msgpack中可能出现此错误的重复。对我们来说,我们的做法是使用Python2.7。我认为编码不好的数据。或者只是不使用UTF-8数据。当使用Python3而不是Python2.7时,我们在msgpack中可能会出现此错误的重复。对我们来说,行动的过程是使用python 2.7。因此,我如何才能找到它是什么编码呢!我正在使用Linux。没有办法做到这一点,但请看这个问题的答案:那么,我如何才能找到它是什么编码呢!我使用的是Linux。没有办法做到这一点,但请看这个问题的答案:显式优于隐式(PEP 20)。诀窍在于ISO-8859-1或拉丁字母_1是8位字符集,因此所有垃圾都有一个有效值。也许不可用,但如果你想忽略!我也有同样的问题,UnicodeDecodeError:“utf-8”编解码器无法解码位置32中的字节0xd0:无效的继续字节。我使用python 3.6.5安装aws cli。当我尝试aws版本时,它失败了,出现了这个错误。因此,我不得不编辑/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/configparser.py,并将代码更改为以下def read(self,filenames,encoding=“ISO-8859-1”):是否有自动检测编码的方法?@OrangeSherbet我使用
chardet
实现了检测。下面是一行代码(在导入chardet之后):
chardet.detect(打开(在_文件'rb').read()中)['encoding']
。详细信息请查看此答案:显式优于隐式(PEP 20)。诀窍在于ISO-8859-1或拉丁字母_1是8位字符集,因此所有垃圾都有一个有效值。也许不可用,但如果你想忽略!我也有同样的问题,UnicodeDecodeError:“utf-8”编解码器无法解码位置32中的字节0xd0:无效的继续字节。我使用python 3.6.5安装aws cli。当我尝试aws版本时,它失败了,出现了这个错误。因此,我不得不编辑/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/configparser.py,并将代码更改为以下def read(self,filenames,encoding=“ISO-8859-1”):是否有自动检测编码的方法?@OrangeSherbet我使用
chardet
实现了检测。下面是一行代码(在导入chardet之后):
chardet.d