有些檔案是ANSI編碼,有些檔案是Unicode編碼,
因為這些檔案都分散在不同的目錄下
我又想要把這些檔案轉換後儲存在原來的目錄原來的檔名
上網找了很多程式,限制都很多
無法同時達到
1. 在不同的目錄下轉換檔案
2. 就算1. 可以也不能存回原來自己的位置
找著找著找到個東西叫 Notepad++ Python Script
恩 Notepad++ 我有在用,Python 我也有在用
這東西該不會很方便的批次轉換檔案格式吧
用 Eclipse 寫了一段程式執行後跑出 notepad 未定義,
查了一下才知道原來 code 是要在 Notepad++ 裡面寫,
把 Notepad++ Python Script 解壓縮到 Notepad++ 安裝目錄下的 Plugin 後
開啟 Notepad++ 就可以看到外掛模組多了個 Python Script
根據這裡提供的範例寫了段 code
import os;
import sys;
filePathSrc="C:\\FilePath"
for root, dirs, files in os.walk(filePathSrc):
for fn in files:
if fn[-4:] == '.htm' or fn[-5:] == '.html':
notepad.open(root + "\\" + fn)
notepad.runMenuCommand("Encoding", "Convert to UTF-8")
notepad.save()
notepad.close()
一直跑出編碼的錯誤因為我的路徑有日文,所以需要編碼轉換
notepad.open(root.encode('utf-8') + "\\" + fn.encode('utf-8'))
之後測試不會有錯誤,但是檔案還是沒有被轉換,
試了好久才在想不會吧,我的 Notepad++ 是用中文的,
索性把code改成
notepad.runMenuCommand("編碼", "轉換至 ANSI 碼格式")
可以了,一跑下去就等著收割了,簡直就是神兵力器
最後的 code 是這樣
# -*- coding: utf-8 -*-
'''
Created on 2014/3/23
@author: LearnRPG
'''
import os;
import sys;
filePathSrc = u"C:\\FilePath"
for root, dirs, files in os.walk(filePathSrc):
for fn in files:
if fn == 'test.txt':
console.write(root.encode('utf-8') + "\\" + fn.encode('utf-8') + " coverting...\n")
notepad.open(root.encode('utf-8') + "\\" + fn.encode('utf-8'))
notepad.runMenuCommand("編碼", "轉換至 ANSI 碼格式")
notepad.save()
notepad.close()
console.write("\n")
請問用最後code在中文下還是不會進行轉換
回覆刪除是否notepad++的設定也要改才能在中文下進行轉換?
應該說因為我的notepad++是裝中文版
刪除所以你對應的command要跟你安裝的notepad++選單(Menu)的描述一樣