python - 'utf- 8' codec can' t 解码字节 0x89

标签 python csv

我想读取一个 csv 文件并处理一些列,但我总是遇到问题。 遇到以下错误:

Traceback (most recent call last):
  File "C:\Users\Sven\Desktop\Python\read csv.py", line 5, in <module>
    for row in reader:
  File "C:\Python34\lib\codecs.py", line 313, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 446: invalid start byte
>>> 

我的代码

import csv
with open("c:\\Users\\Sven\\Desktop\\relaties 24112014.csv",newline='', encoding="utf8") as f:
    reader = csv.reader(f,delimiter=';',quotechar='|')
    #print(sum(1 for row in reader))
    for row in reader:
        print(row)
        if row:
            value = row[6]
            value = value.replace('(', '')
            value = value.replace(')', '')
            value = value.replace(' ', '')
            value = value.replace('.', '')
            value = value.replace('0032', '0')
            if len(value) > 0:
                print(value + ' Length: ' + str(len(value)))

我是 Python 的初学者,尝试过谷歌搜索,但很难找到正确的解决方案。

谁能帮帮我?

最佳答案

.PNG 文件的第一个字节是 0x89。并不是说这是你的问题,但 .PNG header 是专门设计的,因此它不会 不小心被解释为文本

为什么你会有一个 .csv 文件实际上是一个 .png 我不知道。但如果有人不小心重命名了文件,肯定会发生这种情况。在 Windows 10 上,我偶尔会因为愚蠢的复选框功能而意外地批量重命名文件。为什么 Microsoft 决定台式机具有与平板电脑相同的 UI 控件是我的好主意......我不知道。

关于python - 'utf- 8' codec can' t 解码字节 0x89,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219301/

相关文章:

python - 如何使用 ruamel.yaml 而不是 pyyaml 通过 python 编辑 YAML 文件?

python - OpenCV:调整大小窗口不起作用

c# - 将列表写入 CSV 文件

powershell - 在PowerShell中将行添加到CSV文件

c# - CSVHelper 不解析我的制表符分隔的 CSV 文件

python - 从 WTForms 字段获取上传的文件

python - Python3.3中的exec发生了什么?

python - Music21:从 MIDI 文件中获取每个乐器的所有音符

java - 使用 StringBuffer 值将列添加到 CSV 文件 (Java)

Python 3.2 在 csv.DictReader 中跳过一行