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轻松批量压缩图片
在互联网,图片的大小对一个网站的响应速度有着明显的影响,因此在提供用户预览的时候,图片往往是使用压缩后的.如果一个网站图片较多,一张张压缩显然很浪费时间.那么接下来,我就跟大家分享一个批量压缩图片的方 ...
随机推荐
- python selenium 常见问题列表
python selenium webdriver 常见问题FAQ 另一个FAQ: https://code.google.com/p/selenium/wiki/FrequentlyAskedQue ...
- python开发者框架套件总结: package 包 frameworks
python开发者的package 包 框架套件总结: frameworks 开发环境: anaconda pycharm django awesome-django : 介绍 django ...
- Andriod下载源码导入后AndroidManifest.xml小红叉的解决办法
问题描述: 下载源码后,用eclipse导入,AndroidManifest.xml小红叉,而且AndroidManifest.xml打不开无法编译,请高人指点! 解决办法: 网上下载的工程文件夹不要 ...
- jenkins 批量修改 去掉勾选Build whenever a SNAPSHOT dependency is built
进入jenkins 的jobs的上一层目录 执行 sed -i 's/<ignoreUpstremChanges>false<\/ignoreUpstremChanges>/& ...
- 安装windows后grub修复
安装windows之后发现ubuntu进不去了,主要原因在于grub被windows干掉了. 原本希望通过使用u盘来进行修复,结果U盘不被识别. 于是通过easybcd启动ubunt live光盘.进 ...
- Oozie介绍
1. Hadoop常见调度框架: (1)Linux Crontab:Linux自带的任务调度计划,在任务比较少的情况下,可以使用这种方式,直接执行脚本,例如添加一个执行计划: 0 12 * hive ...
- Kubernetes的系统架构与设计理念
Kubernetes与云原生应用简介 随着Docker技术的发展和广泛流行,云原生应用和容器调度管理系统也成为IT领域大热的词汇.事实上,云原生应用的思想,在Docker技术火爆之前,已经由云计算技术 ...
- linux下工具exfs用法
背景:买了一块新的ssd硬盘,挂载到ubuntu下. 1.快速格式化: 1)查看ssd硬盘的盘符: sudo fdisk -l 2)快速格式化: sudo mkfs.ext4 -T default / ...
- centos 7 安装python3和pip
目前,我认为还是使用系统自带的稳定版最好,因为:该版本肯定是centos7开发组深思熟虑的,稳定性好,另外,由于系统自带,兼容性好,第三,和之配套的软件齐全,如果不用系统的,建议还是不要在源码编译安装 ...
- iOS 应用程序目录结构
iOS应用程序采用的是沙盒原理设计,普及一下知识:沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授予应用程序的代码访问权限. 具体的特点有三点:1.每个应用程序都有自己的存储空间: ...