最近遇到一個問題,要處理一堆中文文本,這些中文文本在同一個文件夾中,編碼格式各不相同。我用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