最近遇到一个问题,要处理一堆中文文本,这些中文文本在同一个文件夹中,编码格式各不相同。我用codecs的时候需要指定文件的编码格式,这个时候就不是那么好用了。
搜来搜去,发现python-magic这个库可以完成我的任务。
首先安装python-magic
pip install python-magic
然后我们可以处理这个文件夹了
# -*- coding= utf-8 -*-
import codecs as cs
import os
for p, d, fs in os.walk('test'):
for f in fs:
blob = open(os.path.join(p, f)).read()
m = magic.Magic(mime_encoding=True)
encoding = m.from_buffer(blob)
if encoding == 'utf_16be':
encoding = 'utf_16_be'
......
with cs.open(os.path.join(p, f), 'r', encoding):
some operations