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在命令行下使用google翻译(带语音)
Jan 16 Python
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
Python读取键盘输入的2种方法
Jun 16 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
浅析python打包工具distutils、setuptools
Apr 20 Python
对python requests的content和text方法的区别详解
Oct 11 Python
Numpy 中的矩阵求逆实例
Aug 26 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 Python
Python基于httpx模块实现发送请求
Jul 07 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
Python数据分析之pandas函数详解
Apr 21 Python
Python 键盘事件详解
Nov 11 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获取文件夹内文件数的方法
2015/03/12 PHP
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
vue filters的使用详解
2018/06/11 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
react中hook介绍以及使用教程
2020/12/11 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
Python装饰器用法示例小结
2018/02/11 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
python画图——实现在图上标注上具体数值的方法
2019/07/08 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
Python list运算操作代码实例解析
2020/01/20 Python
python regex库实例用法总结
2021/01/03 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
关于十八大的演讲稿
2014/09/15 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
小学生作文评语集锦
2014/12/25 职场文书
春秋淹城导游词
2015/02/11 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js