1、一个利用Python整理图片的例子
1.1、整理前的文件夹
1.2、需求
- 1、将“萨克斯”和“新建文件夹”两个文件夹里面的图片移动到“pic”目录下的图片一起;
- 2、移动完之后,将这两个空文件夹删除;
- 3、将pic文件夹中所有格式的图片以三位数字重命名。
1.3、效果展示
1.4、过程分析
满足需求1的代码:
import os, shutil
import datetime
#将文件夹里的图片全部移动到新文件夹中,如果目标文件夹有相同文件名,利用系统时间来重命名
def renameFile(dstpath):
fdirname,fbasename=os.path.split(dstpath)#将目标文件路径切片为目录名和文件名
#文件名相同但大小不同
fname,fext=os.path.splitext(fbasename)#将文件名切片成文件名和文件后缀名
nowtime=datetime.datetime.now()
strtime=str(nowtime.year)+str(nowtime.month)+str(nowtime.day)+str(nowtime.hour)+str(nowtime.minute)
newfbasename=fname+'-'+strtime+fext
dstpath=os.path.join(fdirname,newfbasename)#粘合文件目录名和新的文件名
return dstpath
def moveFile(oldpath,newpath):
if os.path.exists(newpath):#如果移动目标文件夹有相同名字的文件,则改名
newpath=renameFile(newpath)
try:
shutil.move(oldpath,newpath)#使用shutil来实现移动
print(oldpath+' is moved')
except:
print(oldpath+' is skipped')
inpath=r'A:\PythonEnvironment\Pycharm_location_projects\Myprojects\Pic'
outpath=r'A:\PythonEnvironment\Pycharm_location_projects\Myprojects\Pic'
image_ext=['.JPG','.jpg','.png','.PNG','.jpeg','.wdp']#常见的图像格式,作为列表
if not os.path.exists(outpath):
os.makedirs(outpath)
for folder, subfolders, files in os.walk(inpath):#os.walk在给定的目录里面游走
for file in files:
oldpath = os.path.join(folder, file)
if os.path.splitext(file)[-1