动感网页相册 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实现端口转发器的方法
Mar 13 Python
python编写弹球游戏的实现代码
Mar 12 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
Nov 18 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
python实现字符串和数字拼接
Mar 02 Python
python实现密码强度校验
Mar 18 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
python3 删除所有自定义变量的操作
Apr 08 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批量删除超链接的实现方法
2015/10/19 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
javascript禁用Tab键脚本实例
2013/11/22 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
js改变鼠标的形状和样式的方法
2014/03/31 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
python中import学习备忘笔记
2017/01/24 Python
Python3中的json模块使用详解
2018/05/05 Python
transform python环境快速配置方法
2018/09/27 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
eBay法国购物网站:eBay.fr
2017/10/21 全球购物
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
PHP面试题及答案一
2012/06/18 面试题
一些Solaris面试题
2015/12/22 面试题
仓库门卫岗位职责
2013/12/22 职场文书
美发活动策划书
2014/01/14 职场文书
协议书与合同的区别
2014/04/18 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
司考复习计划
2015/01/19 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python