动感网页相册 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使用append合并两个数组的方法
Apr 28 Python
python妙用之编码的转换详解
Apr 21 Python
Python实现读取json文件到excel表
Nov 18 Python
Python学习小技巧总结
Jun 10 Python
python 重命名轴索引的方法
Nov 10 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
python爬虫 线程池创建并获取文件代码实例
Sep 28 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
Python自带的IDE在哪里
Jul 01 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 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
我的群发邮件程序
2006/10/09 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
PHP错误处理函数
2016/04/03 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
jquery判断浏览器类型的代码
2012/11/05 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
如何以Angular的姿势打开Font-Awesome详解
2018/04/22 Javascript
js技巧之十几行的代码实现vue.watch代码
2018/06/09 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
Python中random模块生成随机数详解
2016/03/10 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
对python 自定义协议的方法详解
2019/02/13 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
经理管理专业毕业自荐书范文
2014/02/12 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
2014年保管员工作总结
2014/11/18 职场文书
先进集体申报材料
2014/12/25 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android