动感网页相册 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单元测试框架unittest使用方法讲解
Apr 13 Python
python实现上传下载文件功能
Nov 19 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
Python深度优先算法生成迷宫
Jan 22 Python
python腾讯语音合成实现过程解析
Aug 01 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
Nov 06 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 Python
python实现IOU计算案例
Apr 12 Python
python tqdm实现进度条的示例代码
Nov 10 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
Python 如何安装Selenium
May 06 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 5.0创建图形的巧妙方法
2010/10/12 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
PHP7新功能总结
2019/04/14 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
javascript 时间比较实现代码
2009/10/28 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
Vue使用lodop实现打印小结
2019/07/06 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
详细讲解Python中的文件I/O操作
2015/05/24 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
有趣的流行文化T恤、马克杯、手机壳和更多:Look Human
2019/01/07 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
音乐器材管理制度
2014/01/31 职场文书
美术社团活动总结
2014/06/27 职场文书
验房委托书
2014/08/30 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题