批量修改java檔案編碼(GBK->UTF-8),帶備份和恢複功能__編碼

來源:互聯網
上載者:User

非常適合轉換老項目,或是從網上下載了GBK項目的源碼
代碼是網上找的,結合了一下:

#-*- coding: utf-8 -*-import codecsimport osimport shutilimport reimport sysdef convert( filename, in_enc = "GBK", out_enc="UTF-8" ):    shutil.copyfile(filename, filename + '.bak')    # read the file    content = open( filename ).read()    # convert the concent    try:        new_content = content.decode( in_enc ).encode( out_enc )        #write to file        open( filename, 'w' ).write( new_content )    except:        print " error... "def explore( dir ):    for root, dirs, files in os.walk( dir ):        for file in files:            if file.lower().endswith('.java'):                path = os.path.join( root, file )                print "convert " + path,                convert( path )                print " done"def process_bak_files(action='restore'):    for root, dirs, files in os.walk(os.getcwd()):        for f in files:            if f.lower().endswith('.java.bak'):                source = os.path.join(root, f)                target = os.path.join(root, re.sub('\.java\.bak$', '.java', f, flags=re.IGNORECASE))                try:                    if action == 'restore':                        shutil.move(source, target)                    elif action == 'clear':                        os.remove(source)                except Exception, e:                    print sourcedef 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__":    #process_bak_files(action='clear')    main() 

用法

python encode.py [path]
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.