動(dòng)感網(wǎng)頁(yè)相冊(cè) python編寫簡(jiǎn)單文件夾內(nèi)圖片瀏覽工具
不知道大家有沒有這樣的體驗(yàn),windows電腦上查看一張gif圖,默認(rèn)就把IE給打開了,還彈出個(gè)什么詢問項(xiàng),好麻煩的感覺。所以為了解決自己的這個(gè)問題,寫了個(gè)簡(jiǎn)單的文件夾內(nèi)圖片瀏覽工具。
效果圖
以E盤某一文件夾為例

效果圖

實(shí)現(xiàn)思路

業(yè)務(wù)代碼
# coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# __author__ = '郭 璞'
# __date__ = '2016/8/5'
# __Desc__ = 自動(dòng)生成網(wǎng)頁(yè)相冊(cè)
import os
# 呵呵了,原來(lái)有標(biāo)準(zhǔn)庫(kù)中的walk方法。那么這個(gè)方法就獲得一個(gè)文件夾下的圖片文件吧
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結(jié)尾的文件,并補(bǔ)全路徑保存到列表中輸出
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
# 生成網(wǎng)頁(yè)源碼文件,指定
def generate(files, shuffle=False):
template_start = '''
<html><head><meta charset='utf-8'><title>網(wǎng)頁(yè)版相冊(cè)</title><link rel="stylesheet" type="text/css" href="csshake-slow.min.css">
<link rel="stylesheet" type="text/css" ></script></head><body>
'''
template_body = ''
# 如果指定亂序,就亂序列表中的數(shù)據(jù)
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相冊(cè)文件已生成在桌面,請(qǐng)查看'
總結(jié)
•首先說(shuō)一下缺點(diǎn):
◦缺點(diǎn)很明顯,對(duì)于中文支持的不夠好,因?yàn)椴榭磮D片大圖的時(shí)候是以超鏈接的形式出現(xiàn)的,所以會(huì)發(fā)生亂碼的情況。
◦然后是優(yōu)點(diǎn):
優(yōu)點(diǎn)不是很明顯,因?yàn)槿绻粋€(gè)文件夾下面有很多的子文件夾,或者圖片很多的時(shí)候,就會(huì)很慢了。
•然后說(shuō)一下可以改進(jìn)的地方
◦引入JQuery,添加雙擊事件相應(yīng),實(shí)現(xiàn)雙擊刪除不想要的圖片
◦使用多線程的方式運(yùn)行代碼,加快網(wǎng)頁(yè)的生成速度
最后,我想說(shuō)的是,雖然這是個(gè)娛樂性質(zhì)的小東西,但是多發(fā)揮一下想象力,不斷地完善,對(duì)我們開發(fā)而言,一定會(huì)有幫助的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)讀寫sqlite3數(shù)據(jù)庫(kù)并將統(tǒng)計(jì)數(shù)據(jù)寫入Excel的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀寫sqlite3數(shù)據(jù)庫(kù)并將統(tǒng)計(jì)數(shù)據(jù)寫入Excel的方法,涉及Python針對(duì)sqlite3數(shù)據(jù)庫(kù)的讀取及Excel文件相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Python實(shí)現(xiàn)的單向循環(huán)鏈表功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的單向循環(huán)鏈表功能,簡(jiǎn)單描述了單向循環(huán)鏈表的概念、原理并結(jié)合實(shí)例形式分析了Python定義與使用單向循環(huán)鏈表的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
Python socket連接中的粘包、精確傳輸問題實(shí)例分析
這篇文章主要介紹了Python socket連接中的粘包、精確傳輸問題,結(jié)合實(shí)例形式分析了Python socket連接中的粘包、精確傳輸相關(guān)問題原因、解決方案與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
一文詳解Python中PO模式的設(shè)計(jì)與實(shí)現(xiàn)
在使用 Python 進(jìn)行編碼的時(shí)候,會(huì)使用自身自帶的編碼設(shè)計(jì)格式,比如說(shuō)最常見的單例模式等。本文將為大家介紹PageObject自動(dòng)化設(shè)計(jì)模式(PO模式)的設(shè)計(jì)與實(shí)現(xiàn),感興趣的可以了解一下2022-06-06
Python實(shí)現(xiàn)壓縮與解壓gzip大文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)壓縮與解壓gzip大文件的方法,分析了Python針對(duì)壓縮成gzip文件及解壓gzip文件的方法,并給出了相應(yīng)的封裝類,需要的朋友可以參考下2016-09-09
python實(shí)現(xiàn)隨機(jī)森林random forest的原理及方法
本篇文章主要介紹了python實(shí)現(xiàn)隨機(jī)森林random forest的原理及方法,詳細(xì)的介紹了隨機(jī)森林的原理和python實(shí)現(xiàn),非常具有參考價(jià)值,有興趣的可以了解一下2017-12-12
python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn)
本文主要介紹了python中websockets與主線程傳遞參數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02

