python程序把文件编码转换
生活随笔
收集整理的這篇文章主要介紹了
python程序把文件编码转换
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*-
import os
import shutil
import re
import sys
'''
功能:將一個文件夾中的指定類型的文件從gb2312或gbk轉(zhuǎn)換成utf-8類型。
遍歷一個文件夾下所有文件,從src中取出處理后放入ddn中,src中的不變。
指定src和ddn就可以了,還可以改文件處理部分完成別的功能 ''' src=os.getcwd()+'\\'+'!wwwroot' ddn=os.getcwd()+'\\'+'www' ##################################### def search(root,handler):global ddnlist=os.listdir(root)for f in list:cf=root+'\\'+fif os.path.isdir(cf):search(cf,handler)else:handler(cf,ddn)#the function dealing with file ##########################################################def copy(sfn,ddn):global srcddn=ddn+os.path.dirname(sfn).replace(src,'')def copymain():#main code of copy function fn=os.path.basename (sfn)if re.search ('php',fn,re.I):#轉(zhuǎn)換php后綴的文件,不嚴(yán)格檢查sf=open(sfn,'r')s=sf.read()try:#針對網(wǎng)頁類型的文件的處理部分if re.search(r'charset=gb2312',s,re.I):#gb2312類型的進(jìn)行轉(zhuǎn)換print 'gb2312: ',sfns=re.sub('charset=gb2312','charset=utf-8',s)s=s.decode('gbk')df=open(ddn+'\\'+os.path.basename(sfn),'w')df.write(s.encode('utf-8'))df.flush()sf.close()df.close()elif re.search(r'charset=utf-8',s,re.I):#utf-8類型直接復(fù)制print 'utf-8: ',sfnsf.close()shutil.copy2(sfn,ddn)else:#不知道類型的按gb2312轉(zhuǎn)換成utf-8類型s=s.decode('gbk')df=open(ddn+'\\'+os.path.basename(sfn),'w')df.write(s.encode('utf-8'))df.flush()sf.close()df.close()print '*** ',sfnexcept:sf.closeprint sfnsys.exit()else:#非指定類型文件,直接復(fù)制shutil.copy2(sfn,ddn)if os.path.exists (ddn):copymain()#'''else:#directory not exist,create itos.makedirs (ddn)copymain()#'''search(src,copy)
指定src和ddn就可以了,還可以改文件處理部分完成別的功能 ''' src=os.getcwd()+'\\'+'!wwwroot' ddn=os.getcwd()+'\\'+'www' ##################################### def search(root,handler):global ddnlist=os.listdir(root)for f in list:cf=root+'\\'+fif os.path.isdir(cf):search(cf,handler)else:handler(cf,ddn)#the function dealing with file ##########################################################def copy(sfn,ddn):global srcddn=ddn+os.path.dirname(sfn).replace(src,'')def copymain():#main code of copy function fn=os.path.basename (sfn)if re.search ('php',fn,re.I):#轉(zhuǎn)換php后綴的文件,不嚴(yán)格檢查sf=open(sfn,'r')s=sf.read()try:#針對網(wǎng)頁類型的文件的處理部分if re.search(r'charset=gb2312',s,re.I):#gb2312類型的進(jìn)行轉(zhuǎn)換print 'gb2312: ',sfns=re.sub('charset=gb2312','charset=utf-8',s)s=s.decode('gbk')df=open(ddn+'\\'+os.path.basename(sfn),'w')df.write(s.encode('utf-8'))df.flush()sf.close()df.close()elif re.search(r'charset=utf-8',s,re.I):#utf-8類型直接復(fù)制print 'utf-8: ',sfnsf.close()shutil.copy2(sfn,ddn)else:#不知道類型的按gb2312轉(zhuǎn)換成utf-8類型s=s.decode('gbk')df=open(ddn+'\\'+os.path.basename(sfn),'w')df.write(s.encode('utf-8'))df.flush()sf.close()df.close()print '*** ',sfnexcept:sf.closeprint sfnsys.exit()else:#非指定類型文件,直接復(fù)制shutil.copy2(sfn,ddn)if os.path.exists (ddn):copymain()#'''else:#directory not exist,create itos.makedirs (ddn)copymain()#'''search(src,copy)
從gb2312轉(zhuǎn)換到utf-8。
源代碼:點(diǎn)這里下載附件(gbtoutf8)
from:http://www.iteedu.com/myarticle/plang/python/gb-to-utf8.php
總結(jié)
以上是生活随笔為你收集整理的python程序把文件编码转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是价值观(说一说什么是价值观的简介)
- 下一篇: Python:通过远程监控用户输入来获取