From ec85c40caa5a04f96adba934bbd5fa260cc5e8ba Mon Sep 17 00:00:00 2001 From: jze9 Date: Tue, 27 May 2025 21:37:21 +0500 Subject: [PATCH] fix : --- __pycache__/algam.cpython-313.pyc | Bin 3454 -> 0 bytes __pycache__/algam_pars_mif.cpython-313.pyc | Bin 2554 -> 0 bytes __pycache__/reading_sheet.cpython-313.pyc | Bin 1125 -> 0 bytes __pycache__/save.cpython-313.pyc | Bin 2143 -> 0 bytes algam.py | 46 +++++++++++---------- 5 files changed, 25 insertions(+), 21 deletions(-) delete mode 100644 __pycache__/algam.cpython-313.pyc delete mode 100644 __pycache__/algam_pars_mif.cpython-313.pyc delete mode 100644 __pycache__/reading_sheet.cpython-313.pyc delete mode 100644 __pycache__/save.cpython-313.pyc diff --git a/__pycache__/algam.cpython-313.pyc b/__pycache__/algam.cpython-313.pyc deleted file mode 100644 index 5f048a2ce166c4c4fc761bb167ed8340a9284f5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3454 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 O;+Hfej2saFzved$dPlne diff --git a/__pycache__/save.cpython-313.pyc b/__pycache__/save.cpython-313.pyc deleted file mode 100644 index 48b42c99210e5d07bf8c7aee9c1f9646bc0a8634..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2143 zcmbVN&2JM&6rcU_S8N=d1X`C!b`sQX0h_20lqdqVMJ-Jsk+QWE38dA=9y<%`T{F8* zVk)Gnsw(GDfh$F!mnx?UZiGwW#J@m5G|?3G(vxqYsfv1P-&@CNLemy?B){2t@BQAJ znfHF<%~&i#V0`sQaArj&&Z~ zi}8F*)sov0j>CG9TmrO4n5YR%(!@)$CS8(G$eNramu04CAuRx30t;wC7Az@hm`62Z zmYy{{W9qy%)s!Fz4;M{~>J`JA;SqO+Qct&yGR?O$VcsD8(0B6-0kd92oj)eG_S;_L z+(&YPCJYObbsWelMo+A7dclWqzch1^MDSwv^(Wg z3DKIE3r+g>z0(GIX;?~;e?`iGjP6F^>J^X*Aou+*WB`zz|Af5oDIpyMb}dhK{oN-g zwC^TGN<i8*sTkaw(V+2+cuVO1%^5;XDpoA{+hxHxa|nB^D+ zea>N5rXA-B50;I29kF3*SId+c9_4bLS{4r%Oh)sb!)iQ|2MCy_DdTaYP%u5yu?bbADbKPvT;kQ|-au z&dxYxn!S9D4rk9gdDxfjx!IEGWv>_o!}ZwUU>37wDm5O`VH>8W>%3=YgJ;@mJiq%L zh|kEgSbQzk`#9FSTw9F|*2VSCL}OoFSx+2XI@UP0EHtw9;Il)AmkZxcES#@@xE|eq zV{BpU)~RpK+)dvfc$j&RsgJEjKYCf8eUL@{*h~7gk@3}$akNalWO;bx!IApdljsM} z!=(4KIJxx+v^)Zol`n1+Qj?O(QeXq&H|j_!XW}anv9wE zBC9K=$Uv+0r9COBAk_zm8W{gX6&dE{VMd`F9owqqx1J1ti+Drtz;AODL_d&ek>v0( zfo^m5Px>yqg+|VkS+c04$c63}{YvDNR21$AKrj{qXI124<~Rc@aj_t&6idOx!=oi? z)Abg%#Rz|u%# zWV!ok*Wr8pzq?Q^@_F)*z%XkQPpJkOz8-8p2p%x3)6bOykTCT?6&^pT!faiJ_JLCyAl8_|TL1(E7pTt-;3Z(zV95$DQft3h6$) z5h0yDH?A*Szjbvro_Z8Yv3^K(hp;zcQbS03eEfj)5nV4kg)01w={&0I@Dy2Fmbl(3 zg=N~*cEBvb!@<%JfMr4O9$j}m!!z@`;d#uQu6oqfbvB3&n9aW*hNbWY_LrLk@g><1 zBgz}g(guO)w)-niFAhYMbPI+Ec#uO*h1!+cywxh4A7^)L9vW?J{WKc}43^o&>TO7Z SApA&rUdRW8^e+U2ANWtmt;2i( 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