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基础教程之字典操作详解
Mar 25 Python
一个超级简单的python web程序
Sep 11 Python
解析Python中while true的使用
Oct 13 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
对python requests的content和text方法的区别详解
Oct 11 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
Jan 22 Python
Python之Numpy的超实用基础详细教程
Oct 23 Python
python实现飞机大战项目
Mar 11 Python
对python中return与yield的区别详解
Mar 12 Python
Python任务自动化工具tox使用教程
Mar 17 Python
python 解决微分方程的操作(数值解法)
May 26 Python
教你使用TensorFlow2识别验证码
Jun 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
来自phpguru得Php Cache类源码
2010/04/15 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
JS获取鼠标坐标的实例方法
2013/07/18 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python装饰器初探(推荐)
2016/07/21 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
使用openCV去除文字中乱入的线条实例
2020/06/02 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
python代码实现猜拳小游戏
2020/11/30 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
九年级数学教学反思
2014/02/02 职场文书
创业计划书模版
2014/02/05 职场文书
珠宝店促销方案
2014/03/21 职场文书
请假条范文大全
2014/04/10 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
员工给公司的建议书
2019/06/24 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang