Notepadpp批量转换文件格式

<在网上下载一些开源代码后,在Eclipse中、在SourceInsight中打开,都是乱码。——因为这些代码是utf-8编码格式,而si不支持。所以需要对文件格式进行转换。

Notepad++可以自动转换,比如打开一个文件,菜单“转换为ANSI编码格式”。但如果文件非常多,一个个手工操作,会很无聊。

当然EditPlus据说可以批量转换,但没有试过。

然后一路找到Notepad++和Python Script配合,实现批量转换的方法,即
https://sourceforge.net/p/npppythonscript/discussion/1188886/thread/d632d91e/

下面是帖子中的代码,根据实际需要,对原始代码做一些优化,以满足自己的需求。

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文件。

关于Python Script,参考Notepadpp的Python Script插件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值