pthon 批量压缩当前目录,子目录下图片
需求
经常可能有需要压缩图片的需求.
但是一些批量处理图片的软件又仅仅支持压缩一个目录下的图片,
所以写下了这个图片处理程序:
需要安装:
python 2.x
Image模块
特点:
压缩当前目录,子目录图片
每次压缩,宽度,高度减半
支持中文目录.
压缩文件的思路:
1>.遍历当前目录,
确定当前目录路径
确定当前目录所包含的图片
2>. 处理当前目录下的图片
3>. 记录处理结果.
代码实现:
# -*- coding: utf-8 -*-
import Image
import os
import os.path
import sys
import time
fp=open('log.info','a+')
path=os.path.dirname(__file__)
time_now=time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))
i=1
for root, dirs,files in os.walk(path):
current_dir=root
if not len(files):
pass
else:
k=1
for f in files:
if f.endswith('.jpg') :
filepath = os.path.join(current_dir,f)
total_number = "%03d" % i
file_in_dir_number = "%03d" % k
i = i+1
k = k+1
try:
img = Image.open(filepath)
w,h = img.size
img.resize((w/2,h/2)).save(filepath,"JPEG")
log_info=str(total_number)+"\t"+"SMALLSIZE\t"+current_dir+"\t"+ \
file_in_dir_number+"\t"+f+"\t"+str(w)+"\t"+str(h)+ \
"\tSUCESS\t"+str(w/2)+"\t"+str(h/2)+"\t"+time_now
except:
log_info=str(total_number)+"\t"+"SMALLSIZE\t"+current_dir \
+"\t"+file_in_dir_number+"\t"+f+"\t"+"width"+"\t"+"height" \
+"\tSUCESS\t"+"width_s"+"\t"+"height_s"+"\t"+time_now
fp.write(log_info+"\n")
fp.close()
测试的文件夹目录:
D:\desktop\demo
D:\desktop\demo\
| IMG_4342.jpg
| IMG_4343.jpg
| resizeV_SUCESS.py
|
+---AAA
| IMG_4599.jpg
| IMG_4600.jpg
|
+---BBB
| | IMG_4309.jpg
| | IMG_4310.jpg
| | IMG_4311.jpg
| |
| \---BBB1111
| IMG_4323.jpg
| IMG_4324.jpg
|
\---CCC
| IMG_1715.JPG
| IMG_1716.JPG
|
\---CCC111
| IMG_1447.JPG
| IMG_1448.JPG
|
\---CCC222
IMG_0792.JPG
IMG_0793.JPG
python文件所在目录为"**D:\desktop\demo**"
文件所在目录图片
一级子目录AAA下图片
二级子目录BBB,BBB1111下图片
三级子目录CCC,CCC111,CCC222下图片.
测试结果:
测试的文件目录

测试前照片大小

测试后照片大小

生产的log.info查看

另外,文件支持中文目录
pthon 批量压缩当前目录,子目录下图片的更多相关文章
- linux批量压缩当前目录中文件后,删除原文件
linux批量压缩当前目录中文件后,删除原文件 for i in `ls|awk -F " " '{print $NF}'`; do tar -zcvf $i.tar.gz $i ...
- Python 文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件
文件复制&按目录树结构拷贝&批量删除目录及其子目录下的文件 by:授客 QQ:1033553122 测试环境: Python版本:Python 3.3.2 Win7 64 代码实践 # ...
- c#目录以及子目录下图片批量缩放,像素不变,图像大小改变
采用多线程,整体效果 图像根目录黏贴或者手工选择,点击开始,进行目录底下图片筛查.采用多线程,点击开始按钮,开启线程,这样UI不会卡住 private void button2_Click(objec ...
- shell 批量压缩指定目录及子目录内图片的方法
用户上传的图片,一般都没有经过压缩,造成空间浪费.因此需要编写一个程序,查找目录及子目录的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理. 查看目录文件大小 du -h --max- ...
- Winform文件夹图片批量压缩整理修改
效果图: 窗体设计器生成的代码: namespace ImageCompact { partial class MainForm { /// <summary> /// 必需的设计器变量. ...
- tinypng的python批量压缩图片功能
tinypng网站提供的图片压缩功能很不错,但是直接在网站上压缩有限制,大量压缩图片时比较麻烦,还好官方提供了很多脚本的自动化压缩接口.下面简单说下python批量压缩步骤. 1.申请api key ...
- 10 行 Python 代码,批量压缩图片 500 张,简直太强大了
本文原创并首发于公众号[Python猫],未经授权,请勿转载. 原文地址:https://mp.weixin.qq.com/s/5hpFDgjCpfb0O1Jg-ycACw 熟悉 "Pyth ...
- shell 批量压缩指定文件夹及子文件夹内图片
shell 批量压缩指定文件夹及子文件夹内图片 用户上传的图片,一般都没有经过压缩,造成空间浪费.因此须要编写一个程序,查找文件夹及子文件夹的图片文件(jpg,gif,png),将大于某值的图片进行压 ...
- 使用Python轻松批量压缩图片
在互联网,图片的大小对一个网站的响应速度有着明显的影响,因此在提供用户预览的时候,图片往往是使用压缩后的.如果一个网站图片较多,一张张压缩显然很浪费时间.那么接下来,我就跟大家分享一个批量压缩图片的方 ...
随机推荐
- WARNING: The host 'r6' could not be looked up with /usr/local/mysql/bin/resolveip.
初始化MySQL数据库提示以下信息: # /usr/local/mysql/scripts/mysql_install_db \ > --defaults-file=/etc/my.cnf \ ...
- MFC添加自定义窗口消息
原文链接: http://www.cnblogs.com/smartvessel/archive/2011/07/18/2109472.html 1. 在头文件stdafx.h中增加一个自定义消息宏 ...
- keras 类似问题解决:model找不到,或者无法下载
Applications Keras Applications are deep learning models that are made available alongside pre-train ...
- 将逗号分隔的字符串与List互转
将逗号分隔的字符串与List互转 方法 1: 利用JDK的Arrays类String str = "a,b,c";List<String> result = Array ...
- EndNote 输出样式模板(根据国家标准制订)
EndNote 输出样式模板(根据国家标准制定) EndNote 相当于一个数据库,将添加/导入的文献存档.需要引用文献的时候就从中选择一个插入到文档中,EndNote 会自动给你编号.在文档末尾 ...
- js中表达式 >>> 0 浅析 (以及用php简单翻译)
今天在看lodash的源码中slice这个函数实现的时候发现了里面有这么一行代码 length = start > end ? 0 : ((end - start) >>> 0 ...
- 修改 Semantic UI 中对 Google 字体的引用
在第一次尝试 Semantic UI 后,发现其 css 中第一行,就引用了 fonts.googleapis.com 中的字体. 不知道为什么要这么做,也许在国外,google 的服务已经是一种互联 ...
- Android自己定义ViewGroup(二)——带悬停标题的ExpandableListView
项目里要加一个点击可收缩展开的列表,要求带悬停标题,详细效果例如以下图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fon ...
- Android:UI 沉浸式体验,适合第一屏的引导图片、预览图片。
链接:http://www.cnblogs.com/liushilin/p/5799381.html
- PHP数组排序sort、asort与ksort用法
分享下PHP数组排序之sort.asort与ksort用法,实例中简单示范了sort.asort与ksort的用法,并备有注释加以详细说明. PHP数组排序中sort.asort与ksort的用法. ...