2016-10-03 42 views
1

我有一个不是utf-8编码的csv文件。它似乎是不可能出现在Python 3,打开它,我已经试过各种.encode()Windows-1252ISO-8859-1latin-1 - 每次我得到打开非utf-8 csv文件Python 3

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 279: invalid start byte 

0xfc字节是德国ü

我承认,我的判断力受到影响,因为我现在正在与这个问题长期斗争。我错过了什么?我一直在使用Python中的unicode出现问题,但这个看起来特别固执。

这是我第一次尝试与Python 3一起工作,据我所知没有.decode()了,这可能已经解决了第二个问题。

编辑: 代码打开文件:

import unicodecsv as csv 
csv.reader(open('myFile.csv', 'r'), delimiter = ';') 
+0

如何你的文件编码,你的代码是如何打开文件的? – Matthias

+0

@Matthias就是这个问题 - 我没有创建文件,也没有想法它是如何编码的。 在问题中编辑我的代码。 – Zlo

+0

在'open'中,指定'encoding =“latin-1”'参数。 – cdarke

回答

3

只需指定编码时开放文件:

with open("xxx.csv", encoding="latin-1") as fd: 
    rd = csv.reader(fd) 
    ... 

或用自己的代码:

csv.reader(open('myFile.csv', 'r', encoding='latin1'), delimiter = ';') 
+0

非常感谢!我越来越绝望。 – Zlo