功能
- 批量修改当前文件夹下的jpg图片到设置的尺寸
- 将修改后的图片移动到
new_img这个文件夹下
导入库
from PIL import Image # 处理图片模块
import os
import shutil # 移动文件模块
如果没有请提前安装相应的库.
定义一个函数用来处理图片尺寸
def smaller_img(x, y, path): # x,y用来传入尺寸,path用来传入路径
old_img = Image.open(path)
img_deal = old_img.resize((x, y), Image.ANTIALIAS) # 转换图片
img_deal = img_deal.convert(\'RGB\') # 保存为jpg格式才需要
img_deal.save(\'新的文件名\')
遍历当前文件夹下的文件路径
now_path = os.getcwd()
new_path = os.mkdir(now_path + \'\\\' + \'new_img\') # 创建一个名为new_img的文件夹
for file_name in os.listdir(now_path):
files_path = now_path + \'\\\' + file_name
print(files_path) # 输出当前目录下所有的文件的绝对路径
将修改后的图片移动到创建的新文件夹
我使用笨办法,用字符串判断的方式,来确定是否是修改后的图片文件.shutil 模块参考链接
for move_name in os.listdir(now_path):
move_path = now_path + \'\\\' + move_name
if \'switch\' in move_path:
shutil.move(move_path,new_dir) # shutil.move(文件/目录 , 目录)
else:
print(move_path, \'无须移动\')
把这些功能整合起来
from PIL import Image
import os
import shutil
x = input(\'请输入需要修改的尺寸,长:\')
x = int(x)
y = input(\'请输入需要修改的尺寸,高:\')
y = int(y)
now_path = os.getcwd()
new_path = os.mkdir(now_path + \'\\\' + \'new_img\')
new_dir = now_path + \'\\\' + \'new_img\'
# 修改图片大小
def smaller_img(x, y, path):
path = str(path)
old_img = Image.open(path)
img_deal = old_img.resize((x, y), Image.ANTIALIAS)
img_deal = img_deal.convert(\'RGB\')
img_deal.save(\'switch_\' + file_name)
# 遍历文件夹下的文件,并判断是否是JPG文件
for file_name in os.listdir(now_path):
files_path = now_path + \'\\\' + file_name
if \'jpg\' in files_path:
smaller_img(x, y, files_path)
# 遍历文件来判断是否是转换后的jpg文件
for move_name in os.listdir(now_path):
move_path = now_path + \'\\\' + move_name
if \'switch\' in move_path:
shutil.move(move_path,new_dir)
else:
print(move_path, \'无须移动\')
print(file_name, \'switch success\')
else:
print(file_name, \'is not img\')
结束语
有错误的地方请指出,请大家多多批评