需求
由于某种原因项目文件里混着GBK/UTF-8编码文件
文件夹里许多文件编码不一致,需要改为统一编码UTF-8
双击脚本淦就完事那种方便快捷便于理解
需要的库
chardet 用于检测文件编码
codecs 用于按编码读取写入文件
os 用于遍历获取文件夹内容
sys 获取脚本路径
设计思路
获取文件夹内文件
检测文件编码
根据编码打开文件
保存文件内容
按指定转换编码写入文件
完毕
代码实现
import chardet
import codecs
import os
import sys
# 转换后编码类型
encode_out = 'utf-8'
def code2code(filename):
fileencoding = chardet.detect(open(filename, "rb").read())
#print(fileencoding)
fileencode = fileencoding['encoding']
#fileencode = 'gbk'#不检测编码/使用固定原编码
if fileencode == encode_out:
return
with codecs.open(filename, mode='r', encoding=fileencode,errors='ignore') as fi:
data = fi.read()
with codecs.open(filen