.:: Search-n-run Python ::.
Finds new image in folder and loads it
![](main1.png)
This program monitors a directory for a new image file. When the file is located it is executed. I previously wrote the same program in C#. The C# code was 3 pages long. The Python code is half a page. The Python version is also more elegant and robust.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import os, sys import time import datetime #from PIL import Image #FILE EXTENSIONS TO LAUNCH exts = ["jpg","jpeg","png","gif","tiff","bmp"] #START MESSAGE print("##### ROSTISLAV PERSION - IMAGE WATCH/LOADER 1.00 #####") print("MONITORING LOCAL FOLDER...") #INITIALIZE FILE LIST myfiles_new = os.listdir() #MAIN LOOP while True: #PAUSE FOR A FEW SECONDS time.sleep(5) #SAVE OLD FILE LIST, LOAD NEW FILE LIST myfiles_old = myfiles_new.copy() myfiles_new = os.listdir() #FIND DIFFERENCE BETWEEN NEW FILE LIST AND OLD FILE LIST myfiles_dif = list(set(myfiles_new) - set(myfiles_old)) #TRAVERSE NEW FILES for myfiles_dir in myfiles_dif: #FIND FILE EXTANSION FOR FILE myfile_ext = myfiles_dir.split(".")[-1] #CHECK IF FILE EXTANSION EXISTS IN FILE EXTENSION LIST if myfile_ext.lower() in exts: #SHOW IMAGE FILE os.system(myfiles_dir) #img = Image.open(myfiles_dir) #img.show() #GENERATE TIMESTAMP now1 = datetime.datetime.now() now2 = now1.strftime("%d/%m/%Y %H:%M:%S") #OUTPUT NEW FILE FOUND print(now2 + " - NEW FILE FOUND: " + myfiles_dir) |