如有提示无相关模块,请自行pip安装,原创内容,转载请注明出处!
http://www.xuxucode.top/post/28.html
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