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实现跨文件全局变量的方法
Jul 07 Python
介绍Python的Urllib库的一些高级用法
Apr 30 Python
python3处理含有中文的url方法
May 10 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
python模块常用用法实例详解
Oct 17 Python
基于python操作ES实例详解
Nov 16 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
python 线性回归分析模型检验标准--拟合优度详解
Feb 24 Python
基于python纯函数实现井字棋游戏
May 27 Python
Python Flask框架实现简单加法工具过程解析
Jun 03 Python
深入理解Python 多线程
Jun 16 Python
Python如何使用logging为Flask增加logid
Mar 30 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
建立动态的WML站点(一)
2006/10/09 PHP
php 读取shell管道传输过来的内容
2010/03/01 PHP
PHP中文分词 自动获取关键词介绍
2012/11/13 PHP
PHP读取PDF内容配合Xpdf的使用
2012/11/24 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
PHP中使用BigMap实例
2015/03/30 PHP
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
JS实现手风琴特效
2020/11/08 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python学生信息管理系统
2018/03/13 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python3中rank函数的用法
2019/11/27 Python
百丽国际旗下购物网站:优购
2017/02/28 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
SQL数据库笔试题
2016/03/08 面试题
酒店管理专业学生求职信
2013/09/27 职场文书
社区消防工作实施方案
2014/03/21 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
高老头读书笔记
2015/06/30 职场文书
2019各种保证书范文
2019/06/24 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL