Example #1
0
 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()
Example #2
0
    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"