Notepad ++ Python脚本名称'记事本'没有定义

时间:2015-09-07 09:11:24

标签: python notepad++

我在Python中有一个简单的脚本,我试图遍历文件夹中的所有文件,并使用Notepad ++将它们更改为UTF-8编码。

import os;
import sys;
import Npp;
Npp.editor.write('Starting\r\n')
filePathSrc="C:\\SomePath"
Npp.editor.write('FilePath: ' + str(filePathSrc) + '\r\n')
try:
    for root, dirs, files in os.walk(filePathSrc):
        for fn in files:
            if fn[-4:] == '.txt' or fn[-4:] == '.xml' or fn[-5:] == '.html':
                notepad.open(root + "\\" + fn)
                console.write(root + "\\" + fn + "\r\n")
                notepad.runMenuCommand("Encoding", "Encode in UTF-8")
                notepad.save()
                notepad.close()
                Npp.editor.write('Converted ' + str(fn))
except Exception as ex:
    Npp.editor.write('Error occured\r\n')
    Npp.editor.write(str(ex))

然而,当我点击插件 - > Python脚本 - >脚本 - > MySript,我得到的只有:

Starting
FilePath: C:\SomePath
Error occured
name 'notepad' is not defined

在搜索互联网时,我从未发现任何人遇到同样的问题。所有类似的问题都是由于人们试图在Notepad ++之外运行脚本而引起的。但是,我在直接使用Notepad ++插件时遇到错误。

1 个答案:

答案 0 :(得分:3)

根据记录hereeditornotepadconsole都是模块本身内定义的实例。

您可以使用Npp.为这些对象添加前缀,就像您已为editor所做的那样。建议较少的选项是from Npp import *而不是import Npp

您知道源文件的编码吗?如果是这样,您可以使用Python将文件转换为UTF8编码。