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转码问题的解决方法
Oct 07 Python
Python发送Email方法实例
Aug 21 Python
跟老齐学Python之玩转字符串(3)
Sep 14 Python
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
Python内置模块turtle绘图详解
Dec 09 Python
Python 字符串换行的多种方式
Sep 06 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
Python内置加密模块用法解析
Nov 25 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
重构Python代码的六个实例
Nov 25 Python
在Django中使用MQTT的方法
May 10 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 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程序员工具
2008/05/26 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
第三章 php操作符与控制结构代码
2011/12/30 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
使用Python写CUDA程序的方法
2017/03/27 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python中的CSV文件使用"with"语句的方式详解
2018/10/16 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
如何通过安装HomeBrew来安装Python3
2020/12/23 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
新闻记者实习自我鉴定
2013/09/19 职场文书
资产评估专业学生的自我鉴定
2013/11/14 职场文书
医院领导班子整改方案
2014/10/01 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB