python自动监控目录图片并生成缩略图
发表于 ・ Python
如有提示无相关模块,请自行pip安装,原创内容,转载请注明出处!
import os import sys from PIL import Image import win32file import win32con def thumbs(file): exts = file_extension(file) exts = exts.lower() if (exts=='.jpg' or exts=='.jpeg' or exts=='.png' or exts=='.gif'): c=800 im_path=file im=Image.open(im_path) ori_w,ori_h = im.size if (ori_w>c or ori_h>c): if ori_w>ori_h: ratio = ori_w ori_w = c else: ratio = ori_h ori_h = c n = float(c)/ratio if (ori_w!=c): ori_w = int(ori_w*n) if (ori_h!=c): ori_h = int(ori_h*n) im = im.resize((ori_w,ori_h),Image.ANTIALIAS) im.save(file,'jpeg',quality = 95) def file_extension(path): return os.path.splitext(path)[1] ACTIONS = { 1: "Created", 2: "Deleted", 3: "Updated", 4: "Renamed from something", 5: "Renamed to something" } FILE_LIST_DIRECTORY = 0x0001 path_to_watch = 'F:\work' #要监控的目录 print 'Watching changes in', path_to_watch hDir = win32file.CreateFile( path_to_watch, FILE_LIST_DIRECTORY, win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE, None, win32con.OPEN_EXISTING, win32con.FILE_FLAG_BACKUP_SEMANTICS, None ) while 1: results = win32file.ReadDirectoryChangesW( hDir, 1024, True, win32con.FILE_NOTIFY_CHANGE_FILE_NAME | win32con.FILE_NOTIFY_CHANGE_DIR_NAME | win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES | win32con.FILE_NOTIFY_CHANGE_SIZE | win32con.FILE_NOTIFY_CHANGE_LAST_WRITE | win32con.FILE_NOTIFY_CHANGE_SECURITY, None, None) for action, filename in results: full_filename = os.path.join(path_to_watch, filename) print full_filename, ACTIONS.get(action, "Unknown") try: thumbs(full_filename) except: print full_filename continue
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。