我正在尝试使用以下脚本重命名文件,但是在捕获以下“ Do n’t”(以“ Do n't”结尾)时遇到了问题。关于如何执行此操作的任何想法?
def remove_accents(s):
nkfd_form = unicodedata.normalize('NFKD', s)
return u''.join([c for c in nkfd_form if not unicodedata.combining(c)])
for fname in glob.glob("**/*.mp3", recursive=True):
new_fname = remove_accents(fname)
if new_fname != fname:
try:
print ('renaming non-ascii filename to', new_fname)
os.rename(fname, new_fname)
except Exception as e:
print (e)
答案 0 :(得分:3)
这项工作使用了错误的工具-unicodedata.normalize
根本不是要去除口音。
要向下转换为ascii,请查看unidecode
:
>>> from unidecode import unidecode
>>> unidecode("Don’t")
"Don't"