python实现批量转换文件编码(批转换编码示例)


Posted in Python onJanuary 23, 2014
# -*- coding:utf-8 -*-
__author__ = 'walkskyer'
import os
import glob
class Encoding:
    def __init__(self):
        #文件扩展名
        self.ext = ".*"
        #编码
        self.srcEncoding=None
        self.dstEncoding=None
    def convertEncoding(self, content, srcEncoding=None, dstEncoding=None):
        return content.decode(self.srcEncoding).encode(self.dstEncoding)
    def processDirectory(self, args, dirname, filenames):
        print 'Directory', dirname
        for filename in filenames:
            if not os.path.isdir(dirname+'/'+filename):
                if filename.endswith(self.ext) or self.ext == ".*":
                    print ' File', filename
                    self.f2f(dirname+'/'+filename)
    def f2f(self, filepath, srcEncoding=None, dstEncoding=None):
        try:
            f1 = open(filepath, 'rb')
            temp = f1.read()
            f1.close()
            f2 = open(filepath, 'wb')
            f2.write(temp.decode(self.srcEncoding).encode(self.dstEncoding))
            f2.close()
            print '转码成功'
        except Exception, e:
            print e

    def colectFileType(self, dirname, fileType):
        for filename in glob.glob(r'*.'+fileType):
            print filename
    def setExt(self, ext):
        if not ext.startswith('.'):
            ext = "." + ext
        self.ext = ext
    def setSRC(self, encoding):
        self.srcEncoding=encoding
    def setDST(self, encoding):
        self.dstEncoding=encoding
if __name__ == '__main__':
    obj = Encoding()
    print u'请输入文件类型:'
    obj.setExt(raw_input())
    print u'请输入文件原始编码:'
    obj.setSRC(raw_input())
    print u'请输入文件目标类型:'
    obj.setDST(raw_input())
    """obj.setExt('html')
    obj.setSRC('gbk')
    obj.setDST('utf-8')"""
    print u'请输入文件所在目录:'
    path = raw_input()
    os.path.walk(path, obj.processDirectory, None)
Python 相关文章推荐
手动实现把python项目发布为exe可执行程序过程分享
Oct 23 Python
python文件读写操作与linux shell变量命令交互执行的方法
Jan 14 Python
Python中正则表达式的详细教程
Apr 30 Python
Python实现二维数组输出为图片
Apr 03 Python
python pycurl验证basic和digest认证的方法
May 02 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
python实现连连看辅助(图像识别)
Mar 25 Python
对django中foreignkey的简单使用详解
Jul 28 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
Python内置函数property()如何使用
Sep 01 Python
利用For循环遍历Python字典的三种方法实例
Mar 25 Python
python写的一个文本编辑器
Jan 23 #Python
python生成指定长度的随机数密码
Jan 23 #Python
python使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 #Python
python3使用urllib示例取googletranslate(谷歌翻译)
Jan 23 #Python
pyside写ui界面入门示例
Jan 22 #Python
pyqt和pyside开发图形化界面
Jan 22 #Python
python检测lvs real server状态
Jan 22 #Python
You might like
PHP学习 运算符与运算符优先级
2008/06/15 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
php目录操作实例代码
2014/02/21 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
python多线程用法实例详解
2015/01/15 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python模块future用法原理详解
2020/01/20 Python
Python常用数据分析模块原理解析
2020/07/20 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
JAVA中的关键字有什么特点
2014/03/07 面试题
《雨霖铃》听课反思
2014/02/13 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
机动车登记业务委托书
2014/10/08 职场文书
捐资助学感谢信
2015/01/21 职场文书
打架检讨书范文
2015/01/27 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
详解Redis复制原理
2021/06/04 Redis
Python中文纠错的简单实现
2021/07/07 Python