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文件。但是我无法克服这个错误。
答案 0 :(得分:0)
Python尝试使用UTF-8编码(这是当今大多数时间的默认设置)打开文件。不幸的是,您的文件正在使用其他某种编码(或已损坏),因此解码失败。
不幸的是,我不知道文件使用什么编码。您必须自己进行调查。您可以尝试使用Shift JIS之类的另一种编码(使用app.get('/smth/smth_else/:address_line', function(req, res){
if(!req.params)
return res.send("NO PARAMS PASSED")
if(!req.params.address_line)
return res.send("NO address_line PASSED")
if(req.params.address_line === ""){
res.send("ADDRESS LINE EMPTY.")
} else {
res.send("ADDRESS LINE > ",req.params.address_line)
}
}
),看看是否获得有效的文本或mojibake。
如果所有其他方法都失败,则可以以二进制模式(open(full_name, 'r', encoding='shift-jis')
而不是'rb'
来打开文件,然后检查字节3131以及随后的字节。您可能只是手动删除了文件中的一些混乱数据。