2017-10-19 53 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