动感网页相册 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 相关文章推荐
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
在Python中处理XML的教程
Apr 29 Python
在Python中操作日期和时间之gmtime()方法的使用
May 22 Python
Python中生成Epoch的方法
Apr 26 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python中pika模块问题的深入探究
Oct 13 Python
python 多线程重启方法
Feb 18 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
使用python实现多维数据降维操作
Feb 24 Python
matplotlib之多边形选区(PolygonSelector)的使用
Feb 24 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
最常用的8款PHP调试工具
2014/07/06 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
php解决安全问题的方法实例
2019/09/19 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
javascript tips提示框组件实现代码
2010/11/19 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
package.json配置文件构成详解
2019/08/27 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
Python守护进程(daemon)代码实例
2015/03/06 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
Python控制台实现交互式环境执行
2020/06/09 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
自动化系在校本科生求职信
2013/10/23 职场文书
顶岗实习接收函
2014/01/09 职场文书
励志演讲稿300字
2014/08/21 职场文书
中秋晚会活动方案
2014/08/31 职场文书
党员对照检查剖析材料
2014/10/13 职场文书