python Convert Encoding:LookupError: unknown encoding: ansi

匿名 (未验证) 提交于 2019-12-03 07:50:05

问题:

Because of my encode of cdv file is "utf-8",so when I open it with excel it will cause distortion,and when I convert it to then standard encode "ANSI",I get the error:

code:

import chardet  def convertEncoding(from_encode,to_encode,old_filepath,target_file):     f1=file(old_filepath)     content2=[]     while True:         line=f1.readline()         content2.append(line.decode(from_encode).encode(to_encode))         if len(line) ==0:             break      f1.close()     f2=file(target_file,'w')     f2.writelines(content2)     f2.close()    convertFile = open('4321.csv','r') data = convertFile.read() print chardet.detect(data) if chardet.detect(data)['encoding']=='utf-8':     convertFile.close()     convertEncoding(chardet.detect(data)['encoding'], "ansi", "4321.csv", "4321_bak.csv") 

error: {'confidence': 0.99, 'encoding': 'utf-8'} Traceback (most recent call last): File "/Users/allenlee/Desktop/convert/convert.py", line 24, in <module> convertEncoding(chardet.detect(data)['encoding'], "ansi", "4321.csv", "4321_bak.csv") File "/Users/allenlee/Desktop/convert/convert.py", line 8, in convertEncoding content2.append(line.decode(from_encode).encode(to_encode)) LookupError: unknown encoding: ansi [Finished in 0.1s with exit code 1] Thanks for your concern.

回答1:

There's no ansi encoding in Python Standard Encodings.

Choose appropriate encodings from following link: Standard Encodings



回答2:

OK,I find the answer.Thanks to @falsetru

#coding:utf-8  import chardet  def convertEncoding(from_encode,to_encode,old_filepath,target_file):     f1=file(old_filepath)     content2=[]     while True:         line=f1.readline()         content2.append(line.decode(from_encode).encode(to_encode))         if len(line) ==0:             break      f1.close()     f2=file(target_file,'w')     f2.writelines(content2)     f2.close()  convertFile = open('1234.csv','r') data = convertFile.read() convertFile.close()  convertEncoding(chardet.detect(data)['encoding'], "utf-8", "1234.csv", "1234_bak.csv") 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!