python程式把檔案編碼轉換

來源:互聯網
上載者:User
# -*- coding: utf-8 -*-import osimport shutilimport reimport sys'''功能:將一個檔案夾中的指定類型的檔案從gb2312或gbk轉換成utf-8類型。遍曆一個檔案夾下所有檔案,從src中取出處理後放入ddn中,src中的不變。
指定src和ddn就可以了,還可以改檔案處理部分完成別的功能'''src=os.getcwd()+'\\'+'!wwwroot'ddn=os.getcwd()+'\\'+'www'#####################################def search(root,handler): global ddn list=os.listdir(root) for f in list: cf=root+'\\'+f if os.path.isdir(cf): search(cf,handler) else: handler(cf,ddn)#the function dealing with file##########################################################def copy(sfn,ddn): global src ddn=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):#轉換php尾碼的檔案,不嚴格檢查 sf=open(sfn,'r') s=sf.read() try:#針對網頁類型的檔案的處理部分 if re.search(r'charset=gb2312',s,re.I):#gb2312類型的進行轉換 print 'gb2312: ',sfn s=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類型直接複製 print 'utf-8: ',sfn sf.close() shutil.copy2(sfn,ddn) else:#不知道類型的按gb2312轉換成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 '*** ',sfn except: sf.close print sfn sys.exit() else:#非指定類型檔案,直接複製 shutil.copy2(sfn,ddn) if os.path.exists (ddn): copymain() #''' else:#directory not exist,create it os.makedirs (ddn) copymain() #'''search(src,copy)

從gb2312轉換到utf-8。

原始碼:點這裡下載附件(gbtoutf8)

from:http://www.iteedu.com/myarticle/plang/python/gb-to-utf8.php

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.