文章目录
python遍历并显示图片需求
某个images文件下,放置有许多子文件夹,每个子文件夹中放置一些名字有规律的图片,
以数字递增命名,python遍历子文件夹,先显示0.jpg,然后随机显示其他图片。
/opt/images/
└── 1234
├── 0.jpg
├── 1.jpg
└── 2.jpg
实现
# -*-coding:utf-8-*-
import os
import time
import subprocess
import random
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from PIL import Image
book_base_dir = '/opt/images/'
def list_dir_and_run(dr, func):
print('list dir'+dr)
for root,dirs,files in os.walk(dr):
for d in dirs:
#print(os.path.join(root, d));
if None != func:
func(os.path.join(root, d))
def list_file_and_run(dr, func):
for root,dirs,files in os.walk(dr):
for f in files:
print(os.path.join(root,f));
if None != func:
func(f)
def get_file_from_dir(dr):
for root,dirs,files in os.walk(dr):
return files
def cover_name(dr):
return dr + '/0.jpg'
def book_dir_have_cover(dr):
return os.path.exists(cover_name(dr))
def show_img(img):
print('show:' + img)
#im = mpimg.imread(img)
#plt.imshow(im)
#plt.show()
#return plt
p = subprocess.Popen(["display", img])
return p
def show_img_second(img, second):
p = show_img(img)
time.sleep(second)
p.kill()
def show_one_book(bookDir):
if not book_dir_have_cover(bookDir):
print('no cover:' + cover_name(bookDir))
#else:
#print('have cover:' + cover_name(bookDir))
cover = cover_name(bookDir)
print('cover:' + cover)
show_img_second(cover, 5)
pages = get_file_from_dir(bookDir)
print('pages size:' + str(len(pages)))
if len(pages) <= 0:
print(bookDir+' page empty')
return
for i in range(10):
pIndex = random.randint(0, len(pages)-1)
show_img_second(bookDir+'/'+pages[pIndex], 5)
list_dir_and_run(book_base_dir, show_one_book)
作者:帅得不敢出门