Notepadpp批量轉換檔案格式
阿新 • • 發佈:2019-01-23
<在網上下載一些開原始碼後,在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檔案。