动感网页相册 python编写简单文件夹内图片浏览工具_python

不知道大家有没有这样的体验,windows电脑上查看一张gif图,默认就把IE给打开了,还弹出个什么询问项,好麻烦的感觉。所以为了解决自己的这个问题,写了个简单的文件夹内图片浏览工具。

效果图

以E盘某一文件夹为例

效果图

实现思路

业务代码

# 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网页相册
动感相册、动感相册制作免费软件、wag333刘亦菲动感相册、错新网动感相册、动感相册制作软件,以便于您获取更多的相关知识。

时间: 2024-10-27 01:09:54

动感网页相册 python编写简单文件夹内图片浏览工具_python的相关文章

关于文件夹内图片文件获取

问题描述 我用一个folderbrowserdialog对话框打开一个文件夹里面全是jpg的图片我想问一下如何获取这些图片啊 解决方案 解决方案二:你获取的意思是什么?打开显示,还是另存到别的文件夹下?解决方案三:使用FileBrowserDialog.选择文件,FolderBrowserDialog可以选择文件夹.解决方案四:string[]dirs=Directory.GetFiles(folderBrowserDialog1.SelectedPath,"*.jpg");forea

使用Python编写简单网络爬虫抓取视频下载资源_python

我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚本语言,没有之一.Python的语言简洁灵活,标准库功能强大,平常可以用作计算器,文本编码转换,图片处理,批量下载,批量处理文本等.总之我很喜欢,也越用越上手,这么好用的一个工具,一般人我不告诉他... 因为其强大的字符串处理能力,以及urllib2,cookielib,re,threading这些

python压缩文件夹内所有文件为zip文件的方法

本文实例讲述了python压缩文件夹内所有文件为zip文件的方法.分享给大家供大家参考.具体如下: 用这段代码可以用来打包自己的文件夹为zip,我就用这段代码来备份 ? 1 2 3 4 5 6 7 import zipfile z = zipfile.ZipFile('my-archive.zip', 'w', zipfile.ZIP_DEFLATED) startdir = "/home/johnf" for dirpath, dirnames, filenames in os.wa

用Python编写简单的定时器的方法

  这篇文章主要介绍了用Python编写简单的定时器的方法,主要用到了Python中的threading模块,需要的朋友可以参考下 下面介绍以threading模块来实现定时器的方法. 首先介绍一个最简单实现: ? 1 2 3 4 5 6 7 8 9 10 import threading   def say_sth(str): print str t = threading.Timer(2.0, say_sth,[str]) t.start()   if __name__ == '__main

php遍历、读取文件夹中图片并分页显示图片的方法_php技巧

本文实例讲述了php遍历.读取文件夹中图片并分页显示图片的方法.分享给大家供大家参考,具体如下: 引子:我的网站图片目录images下有若干图片如1.jpg.2.jpg.3.jpg.--.n.jpg.1.gif.2.gif.3.gif.--.n.gif,要求在该images目录下建一个index.php文件,使得该文件分页显示images目录下的所有图片. 下面是我想到的办法.不知道有没有更好的办法.呵呵...在图片文件夹images下面建一个index.php文件,内容如下: <?php ec

批处理统计文件夹内的所有文件的数量和总大小的bat_DOS/BAT

我最近电脑不知道为什么磁盘空间会慢慢的变小,而且过一段时间之后,又会有两三GB的空间被释放出来,使用我想监控下,看看是那个文件夹下产生的文件来占用我的存储空间,我想按层监视,最终找出原因. 从网上找个命令行显示指定文件夹目录的大小的批处理程序,但是发现并不太尽人意,总感觉不是很适合我的使用: 第一个程序,可以显示某个文件夹下的文件大小,但是我想按层显示,却不能满足我的要求,程序如下: @echo off echo. set /p dirPath=please input folder path:

linux下采用shell脚本实现批量为指定文件夹下图片添加水印的方法_linux shell

要实现linux下采用shell脚本批量为指定文件夹下图片添加水印,首先需要安装imagemagick: CentOS上安装: yum install ImageMagick -y Debian上安装: apt-get install ImageMagick -y 脚本: #!/bin/bash for each in /要处理的图片目录/*{.jpg,.gif} s=`du -k $each | awk '{print $1}'` if [ $s -gt 10 ]; then #convert

PHP读取文件夹内有多少个文件

文件夹 PHP读取一个文件夹内有多少个文件的函数.比如有一个Pic文件夹,里面有100张图片,下面的函数可以得到他的总数100<?php$dir = './pic';$handle = opendir($dir);$i = 0;while(false !== $file=(readdir($handle))){    if($file !== '.' || $file != '..')    {        $i++;    }}closedir($handle);echo $i;?>

求一个递归修改文件夹内全部子文件和文件夹名的程序(batch或者perl)

问题描述 求一个递归修改文件夹内全部子文件和文件夹名的程序(batch或者perl) 需求是这样的: 递归修改文件夹中所有名字带"aaa"字符串的 文件夹名或者文件名改成 bbb 例如: 01_aaa |_01_aaa_01 |_nbdaaa_01.txt |_nbcaaa_02.txt |_02_aaa_01 改成 01_bbb |_01_bbb_01 |_nbdbbb_01.txt |_nbcbbb_02.txt |_02_bbb_01 解决方案 http://blog.163.c