需求:python 文件批量重命名1. 在当前目录新建目录img, 里面包含100个文件, 100个文件名各不相同(X4G5.png)2. 将当前img目录所有以.png结尾的后缀名改为.jpg.
import random
import string
import os
from os.path import splitext
def gen_code(len=4):
#随机生成4位验证码
li = random.sample(string.ascii_letters+string.digits,len)
#拼接为字符串
return ''.join(li)
def create_files():
#随机生成100个验证码
li = [gen_code() for i in range(100)]
os.mkdir('img')
for i in li:
os.mkdir('img/' + i + '.png')
create_files()
def modify_suffix(dirname,old_suffix,new_suffix):
#找出以png结尾的文件名
# filter()函数接收一个函数 f 和一个list,得出True的元素
pngfile = filter(lambda filename:filename.endswith(old_suffix),os.listdir(dirname))
#分离文件名和后缀
# os.path.split(‘path’):按照路径将文件名和路径分割开 (2)os.path.splitext()将文件名和扩展名分开,得到一个2维列表
basefiles = [os.path.splitext(filename)[0] for filename in pngfile]
#文件重命名
for filename in basefiles:
# print(filename)
oldname = os.path.join(dirname,filename + old_suffix)
newname = os.path.join(dirname,filename + new_suffix)
# 考虑过 oldname为什么不能直接用pngfile(列表)!类型不同
os.rename(oldname,newname)
print('%s重命名为%s成功' %(oldname,newname))
modify_suffix('img','.png','.jpg')