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使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
基于Python的PIL库学习详解
May 10 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
May 21 Python
python实现简单日志记录库glog的使用
Dec 13 Python
通过实例解析python描述符原理作用
Jan 22 Python
Python 如何批量更新已安装的库
May 26 Python
Python正则表达式如何匹配中文
May 27 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 Python
bat批处理之字符串操作的实现
Mar 16 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
如何将数据从文本导入到mysql
2006/10/09 PHP
PHP Session机制简介及用法
2014/08/19 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Python导入txt数据到mysql的方法
2015/04/08 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
网络工程专业毕业生推荐信
2013/10/28 职场文书
自我评价个人范文
2013/12/16 职场文书
《四季》教学反思
2014/04/08 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
团队拓展活动方案
2014/08/28 职场文书
销售2014年度工作总结
2014/12/08 职场文书
暂停营业通知
2015/04/25 职场文书
电影复兴之路观后感
2015/06/02 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
PyQt5实现多张图片显示并滚动
2021/06/11 Python