我在Python中有一個簡單的腳本,其中我試圖遍歷文件夾中的所有文件,並使用Notepad ++將它們更改爲UTF-8編碼。Notepad ++未定義Python腳本名'notepad'
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 ++插件時出現錯誤。
你認爲哪些東西被分配給'notepad'這個名字? –
記事本定義在哪裏?或者'console'。不在您發佈的代碼中。 – mhawke
我認爲它是在插件本身內定義的。代碼只是從這篇文章的修改https://pw999.wordpress.com/2013/08/19/mass-convert-a-project-to-utf-8-using-notepad/。 'console'或'notepad'這兩個名字在代碼中都沒有定義。 – Storm