I have a data analysis application in Python running on Windows. I want users to have the capability to copy a folder containing data files into an "in box" folder, at which point my application will begin processing the data. My question is does Windows provide an event when the directory copy is complete
There's probably a better way to do it but you could bodge it a bit by counting the amount of files in the folder to start with, then waiting until there's an increase in this amount, like so:
import glob, os, time directory = os.path.join('inbox','*') #Uses wildcard so ANY files in the 'inbox' directory are used. numFiles = len(glob.glob(directory)) #Gets initial number of files while True: numFilesNew = len(glob.glob(directory)) #Gets current number of files if numFilesNew > numFiles: #Compare current amount of files to initial break #Exit loop if there's an increase else: time.sleep(1) #Wait if no files were added files = glob.glob(directory) #Make a list of filenames in the directory print(files)
For those unsure, glob.glob essentially returns a list of files in a given directory.
This code was written in Python 3.4 but I don't see a reason why it wouldn't work in other versions.
If you wanted only files of a certain extension then you could swap out
directory = os.path.join('inbox','*')
directory = os.path.join('inbox','*.png')
But of course change '.png' for whatever file extension you need. Of course, that's not to say the file in question is actually of that format/type, only that it has the extension.
This is my first answer on this site, hope it helps! :)