先贴代码吧:
#coding=utf-8
import sys,os
if __name__=='__main__':
dust = u'要替换的中文字符'
path = r'D:\your_dir'
for root, subdirs, files in os.walk(path):
for name in files:
oldname = unicode(name,'gbk')
try:
newname = oldname.replace(dust,'')
os.rename(os.path.join(root, oldname), os.path.join(root, newname))
except:
pass
一般windows的code-page是cp936,也就是gbk编码的,文件中的中文当然也就是这种编码。
由于我们要重命名或者替换的字符串也包含了中文,所以需要将它转成unicode。这个只需要加'u'前缀就可以了。
重点在于对文件名的编码,我们用了unicode(name, 'gbk'),来表示文件名原来是gbk编码的,需要转成unicode。
接下来就是直接的重命名或者替换操作了。