动感网页相册 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访问纯真IP数据库的代码
May 19 Python
Python 字符串操作实现代码(截取/替换/查找/分割)
Jun 08 Python
35个Python编程小技巧
Apr 01 Python
跟老齐学Python之再深点,更懂list
Sep 20 Python
python之wxPython应用实例
Sep 28 Python
python中getaddrinfo()基本用法实例分析
Jun 28 Python
python+pygame简单画板实现代码实例
Dec 13 Python
微信跳一跳python辅助软件思路及图像识别源码解析
Jan 04 Python
python 阶乘累加和的实例
Feb 01 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
python实现三壶谜题的示例详解
Nov 02 Python
Python使用mitmproxy工具监控手机 下载手机小视频
Apr 18 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实现显示照片exif信息的方法
2014/07/11 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
jQuery 表单验证扩展(四)
2010/10/20 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
python getopt详解及简单实例
2016/12/30 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Python中return self的用法详解
2018/07/27 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
Python变量类型知识点总结
2019/02/18 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
Android面试宝典
2013/08/06 面试题
资料员岗位职责
2013/11/17 职场文书
运动会通讯稿400字
2014/01/28 职场文书
2015年组织部工作总结
2015/04/03 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
MySQL数据库 安全管理
2022/05/06 MySQL
Nginx限流和黑名单配置
2022/05/20 Servers