本人使用脚本把商品图批量格式转化。
# encoding: utf-8
"""
#这个文件是图像处理的配置文件,
# 使用方式 windows 命令行下 执行即可
# windows 测试通过
# 作者 qq 897014383
#
#
"""
from PIL import Image,ImageEnhance
import configparser
import os
from os.path import join
#import math
import random
import hashlib
cf = configparser.ConfigParser() # 实例化
# read(filename) 读取文件
filename = cf.read(r'./demos.ini',encoding='utf-8')
sec = cf.sections()
de = cf.get("localtion","file")
des = cf.get("source","file")
def generate_random_str(randomlength=16):
"""
生成一个指定长度的随机字符串
"""
random_str =''
base_str ='ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'
length =len(base_str) -1
for i in range(randomlength):
random_str +=base_str[random.randint(0, length)]
return random_str
def md5_name(strs):
# 创建MD5对象,可以直接传入要加密的数据
m = hashlib.md5(strs.encode(encoding='utf-8'))
mstr = m.hexdigest()
return mstr
'''处理跟目录'''
def sub_dir(file,path):
newpath = de +file + '\\'
isdir = os.path.exists(newpath)
if not isdir:
os.mkdir(de + file)
else:
pass
for f in os.listdir(path):
#print(f)
#print('path = ' + path)
#fname = generate_random_str(16)
subfname = path + '\\' + f
fname = md5_name(subfname)
fullname = newpath+fname+'.jpg'
im = Image.open(subfname)
#print(fullname)
im.save(fullname)
def traverse_dir(path):
midpath = ''
for file in os.listdir(path):
file_path = os.path.join(path, file)
if os.path.isdir(file_path):
print("文件夹:", file_path)
print(file)
sub_dir(file,file_path)
else:
im = Image.open(file_path)
fname = generate_random_str()+'.jpg'
fname = md5_name(file_path)
im.save(de+fname+'.jpg')
#pass
traverse_dir(des)
/*
demos.ini 文件的内容
#这个文件是图像处理的配置文件,
#使用方式
# 此文件名称 demos.ini 不可改动文件名称
# python文件名称 demos.py 不可改动内容,文件名称可以改
# 源文件夹 某目录下,文件夹内就是直接需要处理的图片,不可有其他文件(如 文档,文件夹,压缩包等)
# 目标文件夹 目标文件夹内讲创建同原文件夹内的图片列表所在的文件夹名称,并在此存储处理后的图片
# 作者 qq 897014383
# windows 测试通过
# 注意 此版本只支持指定目录的 文件和一级子目录 。 不支持指定目录的多级子目录
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[source]
file = D:\imgs\
[localtion]
file = D:\imgs1\
*/
Python 批量处理图片的脚本 windows系统下
最新推荐文章于 2024-07-17 14:44:04 发布