UnicodeDecodeError:' cp932'编解码器不能解码字节0xfc

时间:2017-08-24 07:19:16

标签: python python-3.x character-encoding file-handling



import os

for root, dirs, files in os.walk('Path'):
     for file in files:
         if file.endswith('.c'):
             with open(os.path.join(root, file)) as f:
                    for line in f:
                        if 'word' in line:
                            print(line)




得到错误

UnicodeDecodeError:' cp932'编解码器不能解码位置6616中的字节0xfc:非法多字节序列

我认为文件需要改变jis编码。 我可以在开始时设置编码吗? 我试过设定  with open(os.path.join(root,file),' r',encoding =' cp932')为f: 但得到同样的错误

4 个答案:

答案 0 :(得分:2)

您可以传递错误='忽略',但请务必检查文件的编码。

open(os.path.join(root, file),'r', encoding='cp932', errors='ignore')

答案 1 :(得分:1)

最后到这里是因为我遇到了同样的错误。

我只是在学习,但幸运的是我找到了解决方案。

如果它说:

UnicodeDecodeError:'cp932'编解码器无法解码

这意味着您使用的文件编码为cp932,因此您实际上需要更改编码。

就我而言,我试图读取以 UTF-8 编码的文件,因此解决方案是在打开文件时包含该文件:

open("file.txt","r",encoding='utf-8')

我希望这可以帮助任何因为同样的错误来到这里的人。

答案 2 :(得分:0)

尝试使用io库:

io.open(os.path.join(root, file), mode='r', encoding='cp932')

答案 3 :(得分:0)

您需要将阅读模式从 'r' 更改为 'rb'