动感网页相册 python编写简单文件夹内图片浏览工具


Posted in Python onAugust 17, 2016

不知道大家有没有这样的体验,windows电脑上查看一张gif图,默认就把IE给打开了,还弹出个什么询问项,好麻烦的感觉。所以为了解决自己的这个问题,写了个简单的文件夹内图片浏览工具。

效果图

以E盘某一文件夹为例

动感网页相册 python编写简单文件夹内图片浏览工具

效果图

动感网页相册 python编写简单文件夹内图片浏览工具

实现思路

动感网页相册 python编写简单文件夹内图片浏览工具

业务代码

# coding:utf-8
import sys

reload(sys)
sys.setdefaultencoding('utf8')
#  __author__ = '郭 璞'
#  __date__ = '2016/8/5'
#  __Desc__ = 自动生成网页相册
import os


# 呵呵了,原来有标准库中的walk方法。那么这个方法就获得一个文件夹下的图片文件吧
def getFiles(filepath):
  files = []
  if os.path.isdir(filepath):
    for file in os.listdir(filepath):
      if os.path.isdir(file):
        getFiles(file)
      elif file.endswith('.jpg') or file.endswith('.png') or file.endswith('.gif'):
        files.append(filepath + str(file))
  elif os.path.isfile(filepath):
    files.append(filepath)
  return files


# 获取给定目录下所有以.jpg .png .gif结尾的文件,并补全路径保存到列表中输出
def recourse(filepath):
  files = []
  for fpathe, dirs, fs in os.walk(filepath):
    for f in fs:
      if f.endswith('.jpg') or f.endswith('.png') or f.endswith('.gif'):
        files.append(os.path.join(fpathe, f))
  return files


# 生成网页源码文件,指定
def generate(files, shuffle=False):
  template_start = '''
  <html><head><meta charset='utf-8'><title>网页版相册</title><link rel="stylesheet" type="text/css" href="csshake-slow.min.css">
  <link rel="stylesheet" type="text/css" href="http://csshake.surge.sh/csshake-slow.min.css"></script></head><body>
  '''
  template_body = ''
  # 如果指定乱序,就乱序列表中的数据
  if shuffle == True:
    from random import shuffle
    shuffle(files)
  for file in files:
    template_body += '<a href="' + file + '"><img class="shake-slow" src="' + file + '" style="width:64px;height:auto;"></a>'

  template_end = '''
  </body></html>
  '''%
  html = template_start + template_body + template_end
  return html

# 生成html文件,并输出到指定的目录
def write2File(filepath, data):
  file = open(filepath, 'wb')
  file.write(data)
  file.close()
  print 'Write to file Scuuess!'


if __name__ == "__main__":
  # E:\\Picture\\LOFTER\\
  filepath = 'E:\\Picture\\LOFTER\\'
  files = recourse(filepath=filepath)
  for item in files:
    print item
  html = generate(files, True)
  output_path = r'C:\Users\Administrator\Desktop\test.html'
  write2File(filepath=output_path, data=html)
  print 'HTML相册文件已生成在桌面,请查看'

总结
 •首先说一下缺点:
◦缺点很明显,对于中文支持的不够好,因为查看图片大图的时候是以超链接的形式出现的,所以会发生乱码的情况。
◦然后是优点:
优点不是很明显,因为如果一个文件夹下面有很多的子文件夹,或者图片很多的时候,就会很慢了。

 •然后说一下可以改进的地方
◦引入JQuery,添加双击事件相应,实现双击删除不想要的图片

 ◦使用多线程的方式运行代码,加快网页的生成速度

最后,我想说的是,虽然这是个娱乐性质的小东西,但是多发挥一下想象力,不断地完善,对我们开发而言,一定会有帮助的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
35个Python编程小技巧
Apr 01 Python
python编写爬虫小程序
May 14 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python实现嵌套列表去重方法示例
Dec 28 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
python交换两个变量的值方法
Jan 12 Python
Python3中lambda表达式与函数式编程讲解
Jan 14 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
python读取mysql数据绘制条形图
Mar 25 Python
pytorch DataLoader的num_workers参数与设置大小详解
May 28 Python
Python入门教程之运算符与控制流
Aug 17 #Python
python 循环while和for in简单实例
Aug 16 #Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 #Python
Python自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 #Python
详解python的几种标准输出重定向方式
Aug 15 #Python
如何将python中的List转化成dictionary
Aug 15 #Python
怎样使用Python脚本日志功能
Aug 14 #Python
You might like
PHP中几种常见的超时处理全面总结
2012/09/11 PHP
PHP实现懒加载的方法
2015/03/07 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
[02:24]DOTA2亚洲邀请赛 NAVI战队出场宣传片
2015/02/07 DOTA
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
python中xrange用法分析
2015/04/15 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
python学习教程之使用py2exe打包
2017/09/24 Python
Python异步操作MySQL示例【使用aiomysql】
2019/05/16 Python
python实现函数极小值
2019/07/10 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
Python 如何测试文件是否存在
2020/07/31 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
先进班级集体事迹材料
2014/01/30 职场文书
秋天的雨教学反思
2014/04/27 职场文书
教师个人成长总结
2015/02/11 职场文书
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技