动感网页相册 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中的包和模块实例
Nov 22 Python
Python兔子毒药问题实例分析
Mar 05 Python
发布你的Python模块详解
Sep 15 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
Python实现定时精度可调节的定时器
Apr 15 Python
PyQT实现多窗口切换
Apr 20 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
python中从str中提取元素到list以及将list转换为str的方法
Jun 26 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
基于Python中Remove函数的用法讨论
Dec 11 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
joomla内置的表单验证功能使用方法
2010/06/11 PHP
解析PHP处理换行符的问题 \r\n
2013/06/13 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
javascript onmouseout 解决办法
2010/07/17 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
[42:11]TNC vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
Python版名片管理系统
2018/11/30 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
python3.7调试的实例方法
2020/07/21 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
经济信息系毕业生自荐信
2014/06/02 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
python基础之错误和异常处理
2021/10/24 Python