2017-10-19 54 views
0

我一直在使用程序来处理滴答数据。最近它开始处理文件时就停止工作并崩溃。看起来供应商呈现数据的方式有所改变。Python无法解码字符集

所以我们可以说我只需运行:

with open("N:\\2017\\2017-09-28 Daily.CAP") as f: 
    i = 0 
    while True: 
     c = f.read(1) 

我得到这个错误:

Traceback (most recent call last): 
    File "C:/Users/b.karjoo/Documents/PycharmProjects/untitled1/test.py", line 4, in <module> 
    c = f.read(1) 
    File "C:\Users\b.karjoo\py3_virt_env\lib\encodings\cp1252.py", line 23, in decode 
    return codecs.charmap_decode(input,self.errors,decoding_table)[0] 
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 1799: character maps to <undefined> 

有什么建议?

回答

1

我希望这将解决该问题

with open(filename, encoding="cp437") as file: 

但如果你的文件的编码类型不CP437和别的东西除了那个,如果您使用记事本++来查看你的文件,你可以检查它的编码如果您使用文本崇高点击

Encoding, which will show the type of encoding.

键入去

View -> Show Console

Type into field at bottom view.encoding() and it will give you the encoding type.

+0

我无法用np ++打开文件,因为它说20gb太大了。 utf8给出同样的错误。于是我开始逐个浏览所有的编码选项。最后我诉诸了cp437,我没有得到错误。不知道编码是否实际上是cp437,但它的工作原理。 – bkarj

+0

所以你做了encoding =“cp437”是吗? –

+0

是的,这正是我所做的 – bkarj