python实现批量转换文件编码(批转换编码示例)
发布时间:2023-07-28 22:03:47
# -*- 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)


猜你喜欢
- <%@ transaction = required %><%response.b
- 我首次用mysql是在ubuntu上,现在用的是linux 中的Red Hat 分支的centOS 7 ,安装时发现通常用的都是MariaD
- 前言本文主要基于在Uber的Go monorepo中发现的各种数据竞争模式,分析了其背后的原因与分类,希望能够帮助更多的Go开发人员,去关注
- 上一文,介绍了vue.js动态添加、删除绑定的radio选项,本文介绍如何选中radio的某一项绑定的数据和上文的model是一致的,选中r
- Python“json.decoder.JSONDecodeError: Expecting value: line 1
- 你可以将FCKEDITOR放置到任何文件夹,默认情况下,将其放入到FCKEDITOR文件夹是最为简单的方法.如果你放入的文件夹使用别的名称,
- 导语无论家用电脑还是公司的电脑,定时开关机都是一个非常实用的功能,只是一般都不太受关注。定时关机不仅能延长电脑的使用寿命,还能节约超多的电费
- 本文介绍如何利用带进度条的ASP无组件实现断点续传下载大文件。<%@LANGUAGE="VBSCRIPT"&nbs
- 一、如何理解本条内容:一个“简单”和“复杂”的例子在我和开发人员沟通一个项目需求的时候,他们频频慨叹Mockup的设计所考虑情况之细致,很多
- 本文实例讲述了javascript正则表达式模糊匹配IP地址功能。分享给大家供大家参考,具体如下:function checkip() {
- 本文实例讲述了JS弹出窗口插件zDialog简单用法。分享给大家供大家参考,具体如下:因为没有元素可以显示到Frameset上面去,所以重新
- 首先要用designer设计ui界面打开后就和c#一样拖动控件做ui界面保存后是xxx.ui文件再添加个工具Arguments:-m PyQ
- INSERT INTO Table (TestCol) VALUES(‘')其中的TestCol字段,其实在设计的时候,已经被设计为
- readlines的帮助信息>>> fr=open('readme.txt')>>> h
- 本文实例讲述了python实现TCP服务器端与客户端的方法。分享给大家供大家参考。具体如下:TCP服务器程序(tsTserv.py):fro
- 上篇关于爬虫的文章,我们讲解了如何运用Python的requests及BeautifuiSoup模块来完成静态网页的爬取,总结过程,网页爬虫
- 函数原型pd.read_csv(filepath_or_buffer, sep=',', delimiter=None, h
- 前言format语法格式:str.format()str是指字符串实例对象,常用格式为‘ ’.for
- ASP与MySQL的连接ASP和MySQL连接目前有两种方法:一种方法是使用MySQLX之类的组件,不过这种连接方法需要支付一定的费用;另外
- 本文介绍了python Celery定时任务的示例,分享给大家,具体如下:配置启用Celery的定时任务需要设置CELERYBEAT_SCH