批量文件编码转换-python

#!/usr/bin/python
# coding=utf8


import os,sys


def convert( filename, in_enc = "GBK", out_enc="UTF-8" ): 
	try:
		tmp_filename = filename + ".tmp"
		convert_cmd = "iconv -f %s -t %s %s > %s"%(in_enc, out_enc, filename, tmp_filename)
		os.system (convert_cmd);
		if (os.path.isfile(tmp_filename)) :
			rm_cmd = "rm %s"%filename
			mv_cmd = "mv %s %s"%(tmp_filename, filename);
 			os.system (rm_cmd);
			os.system (mv_cmd);
	except: 
		print " error...  : filename : " + filename 

def explore( dir ): 
	for root, dirs, files in os.walk( dir ): 
		for file in files: 
			path = os.path.join( root, file ) 
			convert( path ) 
			print " done" 

def main(): 
	if len( sys.argv ) > 1 : 
		path = sys.argv[1]
	if os.path.isfile( path ): 
		convert( path ) 
	elif os.path.isdir( path ): 
		explore( path ) 

if __name__ == "__main__": 
	main() 



使用:python convert.py ./test 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值