我在Python 3中有以下代码,该代码用于打印csv文件中的每一行。
import csv
with open('my_file.csv', 'r', newline='') as csvfile:
lines = csv.reader(csvfile, delimiter = ',', quotechar = '|')
for line in lines:
print(' '.join(line))
但是当我运行它时,它给了我这个错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 7386: invalid start byte
我查看了csv文件,结果发现,如果我取出单个ñ(小N,顶部有波浪号),则每一行都可以正常打印。
我的问题是,我已经针对类似的问题浏览了许多不同的解决方案,但我仍然不知道如何解决此问题,解码/编码内容等。仅选择数据中的ñ字符是不可行的。
我们知道文件包含字节,b'\x96'
因为错误消息中已提到该字节:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 7386: invalid start byte
现在,我们可以编写一个小脚本来找出b'\x96'
解码到的 编码是否存在ñ
:
import pkgutil
import encodings
import os
def all_encodings():
modnames = set([modname for importer, modname, ispkg in pkgutil.walk_packages(
path=[os.path.dirname(encodings.__file__)], prefix='')])
aliases = set(encodings.aliases.aliases.values())
return modnames.union(aliases)
text = b'\x96'
for enc in all_encodings():
try:
msg = text.decode(enc)
except Exception:
continue
if msg == 'ñ':
print('Decoding {t} with {enc} is {m}'.format(t=text, enc=enc, m=msg))
产生
Decoding b'\x96' with mac_roman is ñ
Decoding b'\x96' with mac_farsi is ñ
Decoding b'\x96' with mac_croatian is ñ
Decoding b'\x96' with mac_arabic is ñ
Decoding b'\x96' with mac_romanian is ñ
Decoding b'\x96' with mac_iceland is ñ
Decoding b'\x96' with mac_turkish is ñ
因此,请尝试更改
with open('my_file.csv', 'r', newline='') as csvfile:
这些编码之一,例如:
with open('my_file.csv', 'r', encoding='mac_roman', newline='') as csvfile:
问题内容: 这是我的代码, 每当我运行此代码时,都会出现以下错误: 但是,它再次给出了相同的错误。那我该怎么办!请帮忙。 问题答案: 正如Mark Ransom所建议的,我找到了解决该问题的正确编码。编码为,因此替换可以解决该问题。
问题内容: https://github.com/affinelayer/pix2pix- tensorflow/tree/master/tools 在上述站点上编译“ process.py”时发生错误。 追溯(最近一次通话): 错误原因是什么?Python的版本是3.5.2。 问题答案: Python尝试将字节数组(假定为utf-8编码的字符串)转换为unicode字符串()。当然,此过程是根据
我正在从Tensorflow导入我的模型,只想使用以下代码优化经过训练的模型: 它显示了这个错误: Traceback(最近一次调用最后一次):File",第2行,data=f.read()File"C:\用户\Chaine\AppData\本地\程序\Python\Python35\lib\site-包\tensorflow\python\lib\io\file_io.py",第125行,读取p
https://github.com/affinelayer/pix2pix-tensorflow/tree/master/tools 在上述站点上编译“process.py”时出错。 回溯(最近一次呼叫最后一次): 错误的原因是什么?Python的版本是3.5。2.
问题内容: 我是Python的新手,正在尝试使用以下脚本读取csv文件。 但是,出现错误“ UnicodeDecodeError:’utf-8’编解码器无法解码位置35处的字节0x96:无效的起始字节”,请在此帮助我了解问题,我在脚本中使用编码认为可以解决错误。 问题答案: 发生这种情况是因为您选择了错误的编码。 由于您使用的是Windows计算机,因此只需更换 与 应该解决问题。
我试图从csv文件中读取所有列。 错误:UnicodeDecodeError:“utf-8”编解码器无法解码位置15中的字节0x96:无效的开始字节