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用于url解码和中文解析的小脚本(python url decoder)
Aug 11 Python
Python读写Redis数据库操作示例
Mar 18 Python
python统计日志ip访问数的方法
Jul 06 Python
python实现网站的模拟登录
Jan 04 Python
python判断所输入的任意一个正整数是否为素数的两种方法
Jun 27 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
详解python中*号的用法
Oct 21 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
Python 定义只读属性的实现方式
Mar 05 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 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之第四天
2006/10/09 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
destoon之一键登录设置
2014/06/21 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
php实现记事本案例
2020/10/20 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
异步加载script的代码
2011/01/12 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[01:02:05]LGD vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python实现购物车程序
2018/04/16 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python3 实现验证码图片切割的方法
2018/12/07 Python
Django实现文件上传和下载功能
2019/10/06 Python
python中提高pip install速度
2020/02/14 Python
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
毕业生求职推荐信
2013/11/04 职场文书
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
企业办公室岗位职责
2014/03/12 职场文书
物理教育专业求职信
2014/06/25 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
学校德育工作总结2015
2015/05/11 职场文书
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫