python实现批量转换文件编码(批转换编码示例)

 更新时间:2014年01月23日 09:52:28   作者:  
这篇文章主要介绍了python实现批量转换文件编码示例,指定文件编码、目录或扩展名即可进行转换,大家参考使用吧

复制代码 代码如下:

# -*- 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 eventlet绿化和patch原理

    python eventlet绿化和patch原理

    这篇文章主要介绍了python eventlet绿化和patch原理,帮助大家更好的理解和学习python eventlet工具的使用,感兴趣的朋友可以了解下
    2020-11-11
  • 详解python中Numpy的属性与创建矩阵

    详解python中Numpy的属性与创建矩阵

    这篇文章给大家分享了关于python中Numpy的属性与创建矩阵的相关知识点内容,有兴趣的朋友们可以学习参考下。
    2018-09-09
  • Pandas 合并多个Dataframe(merge,concat)的方法

    Pandas 合并多个Dataframe(merge,concat)的方法

    今天小编就为大家分享一篇Pandas 合并多个Dataframe(merge,concat)的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python实现不写硬盘上传文件

    Python实现不写硬盘上传文件

    这篇文章主要为大家介绍了Python实现不写硬盘上传文件的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 跟老齐学Python之编写类之三子类

    跟老齐学Python之编写类之三子类

    本文已经是编写类系列的第三篇了,也是最后一篇,介绍下子类,也算是个小总结吧,有需要的朋友可以参考下
    2014-10-10
  • Python爬虫爬取ts碎片视频+验证码登录功能

    Python爬虫爬取ts碎片视频+验证码登录功能

    这篇文章主要介绍了Python爬虫爬取ts碎片视频+验证码登录功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • pyecharts如何旋转折线图的X轴标签

    pyecharts如何旋转折线图的X轴标签

    这篇文章主要介绍了pyecharts如何旋转折线图的X轴标签,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 基于Django框架的rest_framework的身份验证和权限解析

    基于Django框架的rest_framework的身份验证和权限解析

    Django 是一个基于 Python 的 Web 框架,可让您快速创建高效的 Web 应用程序,这篇文章主要介绍了基于Django框架的rest_framework的身份验证和权限解析,需要的朋友可以参考下
    2023-05-05
  • 使用Python自动生成HTML的方法示例

    使用Python自动生成HTML的方法示例

    这篇文章主要介绍了使用Python自动生成HTML的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 六个实用Pandas数据处理代码

    六个实用Pandas数据处理代码

    这篇文章主要介绍了六个实用Pandas数据处理代码,文章围绕主题相相关内容,具有一定的参考价价值,需要的小伙伴可以参考一下
    2022-05-05

最新评论