动感网页相册 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过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
Python os模块介绍
Nov 30 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Python格式化日期时间操作示例
Jun 28 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
Python文件操作函数用法实例详解
Dec 24 Python
Python中断多重循环的几种方式详解
Feb 10 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
Python接收手机短信的代码整理
Aug 02 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
PHP关联链接常用代码
2012/11/05 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
php实现的用户查询类实例
2015/06/18 PHP
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
2016/12/01 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
Node.js API详解之 vm模块用法实例分析
2020/05/27 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
简单的python后台管理程序
2017/04/13 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
python使用turtle库绘制树
2018/06/25 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
windows上彻底删除jupyter notebook的实现
2020/04/13 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
大学毕业生通用自荐信范文
2013/10/31 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
学生意外伤害赔偿协议书
2014/09/17 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
作文评语集锦
2014/12/25 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
大学生暑期实践报告
2015/07/13 职场文书
领导新年致辞2016
2015/07/29 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers