def checkForErrors(self, folder, valid_exts): ''' Check to see if source folder contains any errors return 1 for minor errors, 2 for serious errors, 3 for critical errors ''' error_level = 0 message = '' msg = ('Valid file extensions are: {0}'.format(', '.join(valid_exts))) self.debug_message(msg) if len(os.listdir(folder)) == 0: message = 'Ingen filer er blevet uploadet til processen.' error_level= 2 else: for f in os.listdir(folder): if os.path.isdir(os.path.join(folder,f)): msg = ('Der er blevet uploadet en undermappe til "{0}" ' '({1}) hvilket ikke er tilladt.') msg = msg.format(folder,f) self.debug_message(msg) message = msg #('CRITICAL - Subdirectory {0} found in source folder.').format(folder + f) error_level= 2 break elif tools.getFileExt(f,remove_dot=True) not in valid_exts: if 'Thumbs.db' in f: # removing Thumbs.db is never an error msg = ('Filen "Thumbs.db" er blevet fjernet fra ' 'billedmappe og lagt i invalid-mappen.') self.info_message(msg) self.invalid_files.append(os.path.join(folder,f)) continue #TODO: ��� gives error, decode/encode #UnicodeEncodeError: 'ascii' codec can't encode character u'\xe6' in position 34: ordinal not in range(128) msg = ('Den uploadede fil "{0}" er ikke en tilladt ' 'filtype. Filen er flyttet til mappen "invalid". ' 'Hvis filen ikke skal anvendes kan den slettes og ' 'denne opgave kan afsluttes.') msg = msg.format(f,tools.getFileExt(f,remove_dot=True)) self.debug_message(msg) message = msg #('WARNING - Invalid extension {0} found in source folder').format(tools.getFileExt(f)) error_level = 1 self.invalid_files.append(os.path.join(folder,f)) # legr: the following is added to prevent spaces in filenames - which causes trouble later on if " " in f: msg = ("Der er mellemrum i filnavnet på de indskannede filer - det er ikke tilladt.") self.debug_message(msg) error_level= 2 break return error_level, message
def moveInvalidFiles(self, dest, valid_exts): for f in self.invalid_files: if tools.getFileExt(f) not in valid_exts: self.debug_message("moving file {0}".format(os.path.basename(f))) tools.move_file(f, dest,self.glogger)