关于python3版本下读取文件时出现的字符编码错误

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte…

对于python在读取文件出现编码格式错误的情况下,我在网上找的很多方法都没有解决我遇到的错误,如果你也遇到了网上提供的改变文件编码格式也无法解决的话,可以参考我这里的方法。
有两种方法解决可以在open(file, ‘r’)中加上open(file, ‘rb’)以二进制的方式打开文件就可以了,但是这种方法打开文件存在局限性,就是打开的文件是二进制的,对于一些需要去文件中搜索具体内容的情况不适用,这样的话,第二种方法就可以了,open(file, ‘r’, errors=‘ignore’)忽略掉因为文件的编码格式而打开文件错误也可以正常打开文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果 Python 代码读取了不同编码方式的文件,可能会出现编码错误,导致程序崩溃或者读取到错误的数据。这是因为不同编码方式的文件使用的字符集不同,如果不正确地指定编码方式,就会导致解码错误。 为了避免这种错误,你应该在读取不同编码方式的文件,指定正确的编码方式。例如,在使用 Python 自带的 `open` 函数读取文件,可以指定 `encoding` 参数来指定文件的编码方式。在使用 Pandas 库的 `read_csv` 函数读取 CSV 文件,可以指定 `encoding` 参数来指定文件的编码方式。 以下是一个读取不同编码方式的文件的示例代码,其中使用了 `open` 函数和 Pandas 库的 `read_csv` 函数,并在读取文件指定了正确的编码方式: ```python import os import chardet import pandas as pd def get_encoding(file): with open(file, 'rb') as f: raw_data = f.read() return chardet.detect(raw_data)['encoding'] folder = '/path/to/folder' files = os.listdir(folder) csv_files = [f for f in files if f.endswith('.csv')] for file in csv_files: file_path = os.path.join(folder, file) encoding = get_encoding(file_path) with open(file_path, 'r', encoding=encoding) as f: # 处理文件 pass df = pd.read_csv(file_path, encoding=encoding) # 处理 DataFrame ``` 在这个代码中,`get_encoding` 函数用来查询文件的编码方式,然后在处理文件和 DataFrame ,通过指定 `encoding` 参数来指定正确的编码方式。这样可以避免因编码错误导致的程序异常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值