fix :
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
36
algam.py
36
algam.py
@@ -16,28 +16,31 @@ 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)
|
||||
# Ищем последовательность чисел, разделённых чем угодно, в начале имени файла
|
||||
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:
|
||||
# Удаляем расширение
|
||||
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 = 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'\.[^.]+$', '', 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(
|
||||
@@ -47,5 +50,6 @@ class ReadMifDirectory():
|
||||
additional_info=additional_info,
|
||||
square=UnpackingMif(file_directory=os.path.join(root, file))
|
||||
))
|
||||
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
|
||||
Reference in New Issue
Block a user