UnicodeDecodeError:'utf-8'编解码器无法解码位置3131中的字节0x80:无效的起始字节

问题描述 投票:0回答:1
import os
import shutil
import codecs


directory = '~/Desktop/ra/clean_tokenized/1987'

for filename in os.listdir(directory):
    full_name = directory + '/' + filename
    with open(full_name, 'r') as article:
        for line in article:
            print(line)

这里是回溯:

追踪(最近通话):在第11行的文件“〜/ Desktop / corpus_filter / 01_corpus.py”对于文章中的行:文件“〜/ .conda / envs / MangerRA / lib / python3.7 / codecs.py”,第322行,解码(结果,消耗)= self._buffer_decode(数据,self.errors,最终)UnicodeDecodeError:“ utf-8”编解码器无法解码位置3131中的字节0x80:无效的起始字节

该文件包含日语字符,我只是尝试用所有出现在文件中的单词制作一个CSV文件。但是我无法克服这个错误。

python unicode utf-8 codec utf
1个回答
0
投票

Python正在尝试使用UTF-8编码(这是当今大多数时间的默认设置)打开文件。不幸的是,您的文件正在使用其他编码(否则已损坏),因此解码失败。

很遗憾,我无法告诉您文件使用的编码方式。您必须自己进行调查。您可以尝试使用Shift JIS之类的其他编码(使用open(full_name, 'r', encoding='shift-jis')),并查看是否获得有效的文本或mojibake

如果其他所有方法都失败,则可以以二进制模式('rb'而不只是'r')打开文件,然后检查字节3131以及之后的位置。它可能只是文件中的一些乱七八糟的数据,您可以手动删除或修复。

© www.soinside.com 2019 - 2024. All rights reserved.