import csv from tqdm import tqdm def chort_text(parts): if parts[0] == 'None': return 'None' # Создаем словарь для хранения данных processed_data = {} # Обрабатываем каждую часть for part in parts: # Разбиваем часть по разделителю | subparts = part.split('|') # Получаем производителя и номер детали manufacturer = subparts[0].strip() number = subparts[1].strip() # Получаем дополнительную информацию info = subparts[2].strip() if len(subparts) > 2 else '' # Добавляем данные в словарь if manufacturer in processed_data: processed_data[manufacturer].append(f"{number}") else: processed_data[manufacturer] = [info, number] # Преобразуем словарь в требуемый формат string = '' for key, value in processed_data.items(): if value[0] == '': string += f'{key} : {" | ".join(value[1:])} <> ' else: string += f'{key} : {" | ".join(value[1:])} : {value[0]} <> ' return string with open('oen.csv', newline='') as csvfile: reader = csv.reader(csvfile) csv_data = list(reader) with open('oem2.csv', 'w', newline='', encoding='windows-1251') as csvfile: writer = csv.writer(csvfile) for datas in tqdm(csv_data[1:], desc="Processing", unit="iteration"): row = datas parts = datas[5].split('<>') row[5] = chort_text(parts) parts = datas[6].split('<>') row[6] = chort_text(parts) writer.writerow(row)