def run(self, listFiles): """ Расскидывает файлы по папкам """ db = DataSave() # Перебираем файлы по очереди for rpoFile in listFiles: # Получаем имя файла nameFile = os.path.basename(rpoFile) # Если имя файла совпадает с именем базового ОПС if nameFile[:6] == self.cfg.Base['ops']: parser = PostParser(rpoFile) baseFile = parser.load() db.addBase(baseFile) # То перемещаем на отправку self.moveBase(rpoFile) # Прибавляем 1 к перемещенным базовым файлам self.numBaseMove += 1 continue # Делаем копию self.getReserve(rpoFile) # Перемещаем в рабочую директорию self.moveWork(rpoFile) db.save()
def check(self): """Проверка файлов""" # Список поступивших файлов файлов maskFiles = glob.glob(self.cfg.Base["fileOpsRoot"] + self.cfg.fileMask) # Всего файлов найлено numAllFiles = len(maskFiles) # Расскидываем файлы по папкам fileCtrl = FileControl() fileCtrl.run(maskFiles) # Всего базовых файлов перемещено: numBaseFiles = fileCtrl.numBaseMove # Получаем список рабочих файлов workFiles = glob.glob(self.cfg.AEC["work"] + self.cfg.fileMask) # Всего файлов на обработку numWorkFiles = len(workFiles) # Объект для сохранения данных в БД dbSave = DataSave() # Счетчики для полосы загрузки i = 0 # Всего ошибок найдено numAllError = 0 # Перебираем файлы for rpoFile in workFiles: # Создаем парсер parser = PostParser(rpoFile) # Парсим файл opsFile = parser.load() # Работа фильтров myFilter = Filter(opsFile) # Найдено ошибок в файле numFileError = myFilter.error # Передаем количество ошибок в файл opsFile.error = numFileError numAllError += numFileError # Добавляем в базу dbSave.addBase(opsFile) # Сохраняем обработанный файл в папку с результатом parser.save() # Удаляем его из рабочей папки os.remove(rpoFile) # Ведем расчеты для полосы загрузки i += 1 x = (i * 100) / numWorkFiles # Выводим полосу sys.stdout.write(u"\rВыполнено: %s%%" % x) sys.stdout.flush() # Сохраняем в базу dbSave.save() # Получаем информацию countList = dbSave.getCountFiles() # Выводим информацию print u"\n\nВсего найдено файлов:", numAllFiles, u"шт.\n" print u"Из них:" print u" перемещено на отправку -", numBaseFiles, u"шт." print u" перемещено на обработку -", countList[0], u"шт.\n" print u"Обработка:" print u" всего дубликатов -", countList[1], u"шт." print u" добавленно новых -", countList[2], u"шт." print u"\nВсего ошибок найдено: ", numAllError, u"шт.\n"