动感网页相册 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编程产生非均匀随机数的几种方法代码分享
Dec 13 Python
详解tensorflow实现迁移学习实例
Feb 10 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
python对于requests的封装方法详解
Jan 03 Python
python实现BP神经网络回归预测模型
Aug 09 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
python hashlib加密实现代码
Oct 17 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
Python unittest生成测试报告过程解析
Sep 08 Python
Python使用Kubernetes API访问集群
May 30 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
Python实现生活常识解答机器人
Jun 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无限极分类实现方法分析
2019/07/04 PHP
js 处理URL实用技巧
2010/11/23 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
JavaScript中对象的不同创建方法
2016/08/12 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
如何利用python发送邮件
2020/09/26 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
中国宠物用品商城:E宠商城
2016/08/27 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
音乐幼师求职信
2014/07/09 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Java中的Kotlin 内部类原理
2022/06/16 Java/Android