python.rename修改文件名
2020-05-28 本文已影响0人
mango115
python修改文件名主要用自带模块os.rename(),基本语法是:
os.rename(src, dst)
src – 要修改的目录名
dst – 修改后的目录名
1、先说需求:批量修改路径下文件名,修改成自己想要的格式
如文件名是PicData0001_0_756_1070.jpg 修改为PicData1021_0_756_1070.jpg,后面的图都是改PicData后的文件名序号
原来图片名字为:

修改后的名字希望是:

2、先上完整的代码:
#coding:utf-8
import os
PicPath = r'F:\TestScript\rename\pic/'
#返回路径下文件名,呈列表形式
filelist = os.listdir(PicPath)
for i in range(0,len(filelist)):
PicName = filelist[i] #返回单个的文件名
#对文件名进行拆分处理
#先获取到文件名要修改的位置
a = PicName.split('_',1) #拆分结果为['PicData0001', '0_756_1070.jpg']
#将制定文件名区域替换
b = a[0].replace(a[0][7:],f'{i+1021}') #a[0]返回结果为'PicData0001'
#组合成新的名字
Newname = b + '_' + a[1]
print(Newname)
#修改名字,os.path.join主要是将文件名和路径组合起来
os.rename(os.path.join(PicPath,PicName),os.path.join(PicPath,Newname))
3、改名的关键是,先确定想要修改文件的格式,是整合修改还是单个文件名中保留部分数据拼接
像混乱的文件改名为1.jpg,2.jpg 或者001.jpg 002.jpg 这种格式,其实更简单。
需求:将混乱文件名按着0001,0002,0003规律改名,个位样式为0001,十位样式为0011,百位为0111,千位及以上直接显示数量名1111,11111
#coding:utf-8
import os
PicPath = r'F:\TestScript\rename\pic/'
#返回路径下文件名,呈列表形式
filelist = os.listdir(PicPath)
for i in range(0,len(filelist)):
PicName = filelist[i] #比如文件名为:hajkhkak.jpg
a = PicName.split('.') #文件名变成['hajkhkak','jpg']
b = a[0].replace(a[0],f'{i+1}') #变成1,2,3...
if len(b)==1:
Newname = '000'+ b + '.'+ a[1]
elif len(b)==2:
Newname = '00'+ b + '.'+a[1]
elif len(b)==3:
Newname ='0'+b +'.'+ a[1]
else :
Newname = b+'.'+a[1]
print(Newname)
#修改名字,os.path.join主要是将文件名和路径组合起来
os.rename(os.path.join(PicPath,PicName),os.path.join(PicPath,Newname))
本个小脚本涉及到python中常见方法,
①os.listdir() 返回路径下所有文件
②python split()方法
③python replace()方法
④os.rename()
⑤os.path相关方法
感兴趣的可以详细查一查具体用法
本次分享完。不懂的可以私信