动感网页相册 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文本操作相关模块
Jun 22 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
tensorflow输出权重值和偏差的方法
Feb 10 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
python内置数据类型之列表操作
Nov 12 Python
python爬虫超时的处理的实例
Dec 19 Python
Python检查ping终端的方法
Jan 26 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
python模块如何查看
Jun 16 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
Python Django ORM连表正反操作技巧
Jun 13 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
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
深入理解Node module模块
2018/03/26 Javascript
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
python实现简单的购物程序代码实例
2020/03/03 Python
软件测试笔试题
2012/10/25 面试题
《影子》教学反思
2014/02/21 职场文书
小班开学寄语
2014/04/04 职场文书
不错的求职信范文
2014/07/20 职场文书
施工安全协议书范本
2014/09/26 职场文书
2014年机关作风建设工作总结
2014/10/23 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
2016预备党员培训心得体会
2016/01/08 职场文书
对讲机知识
2022/04/07 无线电
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers