我在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 ++插件时遇到错误。
答案 0 :(得分:3)
根据记录here,editor
,notepad
和console
都是模块本身内定义的实例。
您可以使用Npp.
为这些对象添加前缀,就像您已为editor
所做的那样。建议较少的选项是from Npp import *
而不是import Npp
。
您知道源文件的编码吗?如果是这样,您可以使用Python将文件转换为UTF8编码。