python - Unicode解码错误: 'cp932' codec can't decode byte 0xfc

标签 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:非法多字节序列

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

最佳答案

你可以传递 errors='ignore',但一定要检查你的文件的编码是什么。

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

关于python - Unicode解码错误: 'cp932' codec can't decode byte 0xfc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45855297/

相关文章:

python - 无法在python3中导入tensorflow并出现ImportError : This package should not be accessible on Python 3

python - flask - 带 Nose 的单元测试 session

java - jsp 内容中标记文件的双重编码 UTF-8 输出

Javascript 纯文本字符编码

python - Django:更新未将记录保存到数据库

python - 安装python模块时出现语法错误

python - 通过 Python Socket 向 Maya 发送多行命令

python - CentOS 上 pip 包管理器的问题

python - 根据另一列中的值将列添加到 Python pandas DataFrame

php - 从 CSV 到 MySQL 表再到 Web 的编码和取消编码数据的常见做法/方法