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 实现 贪吃蛇大作战 代码分享
Sep 07 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
Jan 18 Python
python爬虫面试宝典(常见问题)
Mar 02 Python
Python中return self的用法详解
Jul 27 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
django Admin文档生成器使用详解
Jul 22 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
python编写微信公众号首图思路详解
Dec 13 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
浅析Python的命名空间与作用域
Nov 25 Python
解决pytorch-gpu 安装失败的记录
May 24 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
第一节--面向对象编程
2006/11/16 PHP
php中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
PHP7新特性
2021/03/09 PHP
ECMAScript 基础知识
2007/06/29 Javascript
ExtJs使用总结(非常详细)
2012/03/22 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
jQuery+Datatables实现表格批量删除功能【推荐】
2018/10/24 jQuery
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&平移轮播效果
2019/08/16 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
python运行其他程序的实现方法
2017/07/14 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
python列表生成器迭代器实例解析
2019/12/19 Python
Python列表list操作相关知识小结
2020/01/29 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
python全栈开发语法总结
2020/11/22 Python
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
《大禹治水》教学反思
2014/04/27 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
golang json数组拼接的实例
2021/04/28 Golang
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技