diff --git a/__pycache__/algam.cpython-313.pyc b/__pycache__/algam.cpython-313.pyc deleted file mode 100644 index 5f048a2..0000000 Binary files a/__pycache__/algam.cpython-313.pyc and /dev/null differ diff --git a/__pycache__/algam_pars_mif.cpython-313.pyc b/__pycache__/algam_pars_mif.cpython-313.pyc deleted file mode 100644 index 60fe94a..0000000 Binary files a/__pycache__/algam_pars_mif.cpython-313.pyc and /dev/null differ diff --git a/__pycache__/reading_sheet.cpython-313.pyc b/__pycache__/reading_sheet.cpython-313.pyc deleted file mode 100644 index 7b4df81..0000000 Binary files a/__pycache__/reading_sheet.cpython-313.pyc and /dev/null differ diff --git a/__pycache__/save.cpython-313.pyc b/__pycache__/save.cpython-313.pyc deleted file mode 100644 index 48b42c9..0000000 Binary files a/__pycache__/save.cpython-313.pyc and /dev/null differ diff --git a/algam.py b/algam.py index 42b65a3..fa2e40c 100644 --- a/algam.py +++ b/algam.py @@ -16,30 +16,33 @@ class ReadMifDirectory(): pass def find_mif_files(self,directory:str): - mif_files = [] # Список для хранения найденных MIF файлов - # Проходим по всем поддиректориям и файлам + mif_files = [] for root, dirs, files in os.walk(directory): for file in files: - # Проверяем, заканчивается ли имя файла на .mif - if file.lower().endswith('.mif'): - - cad_match = re.search(r'(?:\d+[_\W]*)+\d+', file) + if file.lower().endswith('.mif'): + # Ищем последовательность чисел, разделённых чем угодно, в начале имени файла + cad_match = re.search(r'(\d{2,}([_\W]+)?)+\d{2,}', file) if cad_match: - cad_number = re.sub(r'[^\d_]', '_', cad_match.group()) # Заменяем все НЕ цифры/подчёркивания на _ - cad_number = re.sub(r'_+', '_', cad_number).strip('_') # Чистим подчёркивания - # Берём текст ПОСЛЕ кадастрового номера (игнорируя разделители после него) + # Извлекаем только цифры из найденной последовательности + numbers = re.findall(r'\d+', cad_match.group()) + cad_number = ':'.join(numbers) + # Всё, что после кадастрового номера — это аббревиатуры и прочее additional_info = file[cad_match.end():] - if cad_number.count('_') < 3: - cad_number = "" - additional_info = file - - - additional_info = re.sub(r'\.[^.]+$', '', additional_info) # Удаляем расширение - additional_info = re.sub(r'\s+', '_', additional_info) # Заменяем пробелы на _ - additional_info = re.sub(r'^[^\wа-яА-ЯёЁ]*', '', additional_info) # Удаляем спецсимволы в начале - additional_info = re.sub(r'[^\wа-яА-ЯёЁ_]', '', additional_info) # Удаляем оставшиеся спецсимволы - additional_info = re.sub(r'_+', '_', additional_info).strip('_') - + # Удаляем расширение + additional_info = re.sub(r'\.[^.]+$', '', additional_info) + # Чистим пробелы и спецсимволы + additional_info = re.sub(r'\s+', '_', additional_info) + additional_info = re.sub(r'^[^\wа-яА-ЯёЁ]*', '', additional_info) + additional_info = re.sub(r'[^\wа-яА-ЯёЁ_]', '', additional_info) + additional_info = re.sub(r'_+', '_', additional_info).strip('_') + else: + cad_number = "" + additional_info = re.sub(r'\.[^.]+$', '', file) + additional_info = re.sub(r'\s+', '_', additional_info) + additional_info = re.sub(r'^[^\wа-яА-ЯёЁ]*', '', additional_info) + additional_info = re.sub(r'[^\wа-яА-ЯёЁ_]', '', additional_info) + additional_info = re.sub(r'_+', '_', additional_info).strip('_') + mif_files.append(MifData( directory=os.path.join(root, file), name=os.path.basename(file), @@ -47,5 +50,6 @@ class ReadMifDirectory(): additional_info=additional_info, square=UnpackingMif(file_directory=os.path.join(root, file)) )) - print(f"{mif_files[0].directory=}/{mif_files[0].name=}/{mif_files[0].cad_number=}/{mif_files[0].additional_info=}/{mif_files[0].square=}") + if mif_files: + print(f"{mif_files[0].directory=}/{mif_files[0].name=}/{mif_files[0].cad_number=}/{mif_files[0].additional_info=}/{mif_files[0].square=}") return mif_files \ No newline at end of file