【问题标题】:'utf-8' codec can't decode byte 0x92 in position 11: invalid start byte“utf-8”编解码器无法解码位置 11 中的字节 0x92:无效的起始字节
【发布时间】:2020-06-22 03:03:22
【问题描述】:

我正在尝试将文件夹的所有 csv 文件转换为 xlsx 并使用以下代码。

import glob
import csv
import pandas as pd
files = glob.glob('D:\cf111\*.csv')
for k in files:
    df = pd.read_csv(k)
    df.to_excel("abc.xlsx")

代码正在生成以下错误。

utf-8' codec can't decode byte 0x92 in position 11: invalid start byte

我无法解决,如何解决此错误。

【问题讨论】:

标签: python pandas glob


【解决方案1】:

问题可能是因为 csv 中有不支持 encoding="utf-8" 的内容。您可以尝试使用其他编码

代码示例:

import glob
import csv
import pandas as pd
files = glob.glob('D:\cf111\*.csv')
for k in files:
    df = pd.read_csv(k, encoding='ISO 8859-1')
    df.to_excel("abc.xlsx")

文档参考: https://docs.python.org/3/library/codecs.html#standard-encodings

【讨论】:

  • 谢谢。编码问题已解决。但它只转换一个(第一个)文件。不遍历整个文件夹来检查其他文件。
  • 您需要在每次 for 循环 执行循环时更改您的 excel 文件名。否则,只有您的 last csv 会被转换。
【解决方案2】:

msg = email.message_from_string(str(arr[1], 'ISO 8859-1')) 使用 'ISO 8859-1' 而不是 'utf-8'

【讨论】:

    猜你喜欢
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-09-13
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    相关资源
    最近更新 更多