我想從文件夾中的所有編碼文件中刪除所有重音符號..我已經在構建文件列表中成功,問題是當我嘗試使用unicodedata進行標準化我得到的錯誤: **回溯(最近一次調用最後一次): 文件「/usr/lib/gedit-2/plugins/pythonconsole/console.py」,第336行,在__run中 exec command in self .namespace 文件 「」,第2行,在 UnicodeDecodeError錯誤:在位置25 'UTF8' 編解碼器不能解碼字節0xf3:無效延續字節 **Python - 從文件夾中的所有文件中刪除重音
if options.remove_nonascii:
nERROR = 0
print _("# Removing all acentuation from coding files in %s") % (options.folder)
exts = ('.f90', '.f', '.cpp', '.c', '.hpp', '.h', '.py'); files=set()
for dirpath, dirnames, filenames in os.walk(options.folder):
for filename in (f for f in filenames if f.endswith(exts)):
files.add(os.path.join(dirpath,filename))
for i in range(len(files)):
f = files.pop() ;
os.rename(f,f+'.BACK')
with open(f,'w') as File:
for line in open(f+'.BACK').readlines():
try:
newLine = unicodedata.normalize('NFKD',unicode(line)).encode('ascii','ignore')
File.write(newLine)
except UnicodeDecodeError:
nERROR +=1
print "ERROR n %i - Could not remove from Line: %i" % (nERROR,i)
newLine = line
File.write(newLine)
謝謝..使用unidecode解決了! – canesin 2011-02-08 17:18:18