From b825fede85ade00c57e556d4b8bb3cb4087b99a2 Mon Sep 17 00:00:00 2001 From: Ivan Zinchenko Date: Tue, 14 Nov 2023 17:40:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BF=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=205?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 5.py | 30 ++++++++++++++++++++++++++++++ input.yaml | 8 ++++---- output.csv | 3 +++ 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 5.py create mode 100644 output.csv diff --git a/5.py b/5.py new file mode 100644 index 0000000..7e15487 --- /dev/null +++ b/5.py @@ -0,0 +1,30 @@ +import re + +lessons = [] +row = {} +columns = ['subject', 'weekday', 'time', 'group', 'audience', 'teacher', 'type', 'format'] +header = 'Предмет,День недели,Время,Группа,Аудитория,Учитель,Тип урока,Формат урока' + +with open('input.yaml', encoding='UTF-8') as f: + for i in f.readlines()[1:]: + if i.strip()[0] == '-': + if row: + lessons.append(row) + row = {} + i = i.split(':') + i[1] = ':'.join(i[1:]) + i[0] = i[0].replace('-', '').strip() + i[1] = i[1].replace('"', '""').strip() + if any(map(lambda x: x in i[1], ['"', ',', "\\n"])): + i[1] = f'"{i[1]}"' + row[i[0]] = i[1] + lessons.append(row) + +output = header + '\n' +with open('output.csv', 'w', encoding='UTF-8') as f: + for i in lessons: + for key in columns: + output += i.get(key, '') + ',' + output = output[:-1] + '\n' + f.write(output) + print(output) diff --git a/input.yaml b/input.yaml index f67aa2d..ab68b03 100644 --- a/input.yaml +++ b/input.yaml @@ -4,12 +4,12 @@ lessons: time: 10:00-11:30 group: ИРИ 2.2 audience: Ауд. 1410, Кронверкский пр., д.49, лит.А - teacher: Айб\а Тамара Гурамовна - type: Практика + teacher: Айба Тамара Гурамовна + type: Практ\nика format: Очно - subject: История России и мира в ХХ веке - wee{kday: Четверг - t}ime: 15:20-16:50 + weekday: Четверг + time: 15:20-16:50 group: ИРИ 2 audience: Ауд. Lemon Classroom (1419), Кронверкский пр., д.49, лит.А teacher: Пригодич Никита Дмитриевич diff --git a/output.csv b/output.csv new file mode 100644 index 0000000..386d0b4 --- /dev/null +++ b/output.csv @@ -0,0 +1,3 @@ +Предмет,День недели,Время,Группа,Аудитория,Учитель,Тип урока,Формат урока +История России и мира в ХХ веке,Четверг,10:00-11:30,ИРИ 2.2,"Ауд. 1410, Кронверкский пр., д.49, лит.А",Айба Тамара Гурамовна,"Практ\nика",Очно +История России и мира в ХХ веке,Четверг,15:20-16:50,ИРИ 2,"Ауд. Lemon Classroom (1419), Кронверкский пр., д.49, лит.А",Пригодич Никита Дмитриевич,Лекция,"Очно - дистанционный ""],"