1. 程式人生 > >Notepadpp批量轉換檔案格式

Notepadpp批量轉換檔案格式

<在網上下載一些開原始碼後,在Eclipse中、在SourceInsight中開啟,都是亂碼。——因為這些程式碼是utf-8編碼格式,而si不支援。所以需要對檔案格式進行轉換。

Notepad++可以自動轉換,比如開啟一個檔案,選單“轉換為ANSI編碼格式”。但如果檔案非常多,一個個手工操作,會很無聊。

當然EditPlus據說可以批量轉換,但沒有試過。

下面是帖子中的程式碼,根據實際需要,對原始程式碼做一些優化,以滿足自己的需求。

import os
import sys

from Npp import notepad # import it first!

# Path to the folder with files to convert
filePathSrc = "E:\\source_code\\" 
#print filePathSrc
for root, dirs, files in os.walk(filePathSrc):
    #print root, dirs, files 
    for fn in files: 
        #print fn 
        if fn[-5:] == ".java":
            print "java:", fn 
            notepad.open(root + "\\" + fn)      
            #notepad.runMenuCommand("Encoding", "Convert to ANSI")
            notepad.menuCommand(MENUCOMMAND.FORMAT_CONV2_ANSI)
            #print "ret:", ret

            # notepad.save()
            # if you try to save/replace the file, an annoying confirmation window would popup.
            new_fn = fn[:-5] + '_ansi.java'
            #notepad.saveAs("{}{}".format(fn[:-5], '_utf8.xml')) 
            notepad.saveAs(root + "\\" + new_fn) 
            notepad.close()

這裡是為每個檔案建立一個對應的ansi.java備份檔案。先跑一遍這種指令碼,初步驗證轉換可行。之後就把這些臨時ansi檔案刪除掉,再修改程式碼最後幾行為:

notepad.save()
# if you try to save/replace the file, an annoying confirmation window would popup.
#new_fn = fn[:-5] + '_ansi.java'
#notepad.saveAs("{}{}".format(fn[:-5], '_utf8.xml')) 
#notepad.saveAs(root + "\\" + new_fn) 
notepad.close()

那麼就直接修改原始檔、儲存到原始檔了。

說明:上面這個py檔案,好像不能隨便放。需要 外掛->Python Script->New Script的方式才行。或者放到這個New Script所在的那個目錄下,這樣子外掛才能找到py檔案。