动感网页相册 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 相关文章推荐
Python警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
Python实现一个简单的MySQL类
Jan 07 Python
python使用PIL缩放网络图片并保存的方法
Apr 24 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
python Opencv将图片转为字符画
Feb 19 Python
Python3.6.0+opencv3.3.0人脸检测示例
May 25 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
PageFactory设计模式基于python实现
Apr 14 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 Python
教你怎么用python实现字符串转日期
May 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
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
php单一接口的实现方法
2015/06/20 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
Javascript调用C#代码
2011/01/17 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
python flask实现分页效果
2017/06/27 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
python numpy数组中的复制知识解析
2020/02/03 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
html5声频audio和视频video等新特性详细说明
2012/12/26 HTML / CSS
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
应用电子专业学生的自我评价
2013/10/16 职场文书
同居协议书范本
2014/04/23 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
小学师德师风整改措施
2014/10/27 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
结婚典礼主持词
2015/06/29 职场文书
小学三年级作文之写景
2019/11/05 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
基于Python实现对比Exce的工具
2022/04/07 Python