[英]python Convert Encoding:LookupError: unknown encoding: ansi
因為我的 cdv 文件被編碼為utf-8
,所以用 Excel 打開它會導致失真,然后當我將其轉換為標准的ANSI
編碼時,出現此錯誤:
代碼:
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")
錯誤:
{'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]
感謝你的關心。
PythonStandard Encodings 中沒有ansi
編碼。
從以下鏈接中選擇適當的編碼:標准編碼
好的,我找到了答案。感謝@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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.