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操作ie登陆土豆网的方法
May 09 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
Python WSGI的深入理解
Aug 01 Python
python树莓派红外反射传感器
Jan 21 Python
如何在Django配置文件里配置session链接
Aug 06 Python
pytorch 自定义数据集加载方法
Aug 18 Python
pycharm快捷键汇总
Feb 14 Python
Python求凸包及多边形面积教程
Apr 12 Python
Python unittest基本使用方法代码实例
Jun 29 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
js URL参数的拼接方法比较
2012/02/15 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中splitlines()方法的使用简介
2015/05/20 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
浅析python中的分片与截断序列
2016/08/09 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
python实现SOM算法
2018/02/23 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
virtualenv介绍及简明教程
2020/06/23 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
《美丽的田园》教学反思
2014/03/01 职场文书
政工例会汇报材料
2014/08/26 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
庆七一活动简报
2015/07/20 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers