使用 python 正确读取不同编码方式文本

通常情况下,都会默认输入文件以 utf-8 的方式进行编码,总会有几个奇葩输入文件存在,导入分析流程,啊额,编码问题运行终止,再来一遍呢还是再来一遍。

技术问题还是选择用技术手段解决好些,是吧,一个简单的例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from io import open

def Read_File_Right_Encode(fp, encodelst=None):
'''
'''
# content = subprocess.check_output('iconv -f GBK -t utf-8 {file}')
with open(fp, 'rb') as f:
tmp = f.read()
if encodelst is None:
encodelst = ['gbk', 'ascii', 'utf-8']
x = 0
while True:
if x == len(encodelst):
raise Exception('Can\'t find right coding format of {} in decode list: {}'.format(fp, ', '.join(encodelst)))
try:
content = tmp.decode(encodelst[x])
break
except:
pass
x += 1
return content
---------本文结束,感谢您的阅读---------