在平时的工作中,当我们面对几百上千的文件时,想要按照某一规则修改其文件名,手动改肯定不人性化,下面这个程序可以根据工作者需要,稍作修改,可以完成不同要求的文件名批量修改任务,本博文是在笔者工作过程中遇到这样的需求写的,本博文实现的主要功能是把文件名中的汉字自动替换成其首字母,其他不变。如果有其他要求,把代码稍作修改,相信也可以实现。如图:
把左图的文件名改成右图所示
下面是代码
import os;
import pypinyin
from pypinyin import pinyin, lazy_pinyin
def rename():
path=u"E://文件夹路径";
filelist=os.listdir(path)#该文件夹下所有的文件(包括文件夹)
for files in filelist:#遍历所有文件
Olddir=os.path.join(path,files);#原来的文件路径
if os.path.isdir(Olddir):#如果是文件夹则跳过
continue;
filename=os.path.splitext(files)[0]; #获取文件名
#把文件名里的汉字转换成其首字母
filename1 = pinyin(filename, style=pypinyin.FIRST_LETTER)
#创建一个空列表
filename2 = []
for ch in filename1:
filename2.extend(ch)
#把列表转换成没有间隔的字符串,因为文件名要以字符串形式存在
filenameToStr = ''.join(filename2)
filetype=os.path.splitext(files)[1];#文件扩展名
Newdir=os.path.join(path,filenameToStr + filetype);#新的文件名
os.rename(Olddir,Newdir);#重命名
rename();