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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
Python实现模拟浏览器请求及会话保持操作示例
Jul 30 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
Jun 08 Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
python super()函数的基本使用
Sep 10 Python
python如何绘制疫情图
Sep 16 Python
Python中Yield的基本用法
Oct 18 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中var_export与var_dump的区别分析
2010/08/21 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
jquery.map()方法的使用详解
2015/07/09 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
webpack配置之后端渲染详解
2017/10/26 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
pygame实现五子棋游戏
2019/10/29 Python
Python笔记之观察者模式
2019/11/20 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
财务科科长岗位职责
2014/03/10 职场文书
关于环保的建议书400字
2014/03/12 职场文书
担保书怎么写
2014/04/01 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
大学毕业生推荐信
2014/07/09 职场文书
银行稽核岗位职责
2015/04/13 职场文书
工作失职自我检讨书
2015/05/05 职场文书
学校捐款活动总结
2015/05/09 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL