Простенькая программа конвертирующая типовой отчет о сравнении конфигураций в "плоскую" структуру. На один объект приходится одна строка, а изменения вниз по иерархии представляются разделенными точками с запятыми (CSV).
Принцип работы:
1. Запускаем программу
2. Выбираем в открывшимся диалоге исходный файл отчета "Отчет о сравнении конфигураций" выгруженный в текстовый документ.
3. Выбираем в открывшимся диалоге файл, в который требуется сохранить сконвертированный отчет.
Исходный код (Python 3):
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename(filetypes=[("text", "*.txt")])
f = open(file_path, 'r', encoding='utf-8')
text = ''
current_line = ''
current_column_number = 0
for line in f:
column_number = line.count('\t') - 1
if column_number < 1:
continue
elif column_number == 1:
if current_line.find('^') == -1 or current_column_number > 3:
text = text + ('' if text == '' else '\n') + current_line
current_column_number = column_number
current_line = ''
if current_column_number != column_number:
current_column_number = column_number
current_line = current_line + "; "
else:
current_line = current_line + " "
current_line += line.replace('\n', '').strip()
f.close()
text = "***- Объект изменен\n"\
"-->- Объект присутствует только в основной конфигурации\n"\
"<--- Объект присутствует только в конфигурации поставщика\n"\
"^- Порядок объекта изменен\n\n"\
+ text
file_path = filedialog.asksaveasfilename(filetypes=[("text", "*.txt")])
with open(file_path, "w", encoding='utf-8') as text_file:
print(text, file=text_file)