From 1e3de4521ef57b9f6c94448478afc8961dc49fc4 Mon Sep 17 00:00:00 2001 From: Stasia Soloduha Date: Fri, 16 Sep 2022 21:33:53 +0300 Subject: [PATCH 1/2] Homework date_files --- 1_date_and_time.py | 37 +++++++++++++++++++++++++++---------- 2_files.py | 14 +++++++++----- 3_dict_to_csv.py | 20 +++++++++++++++----- Cvs_list.csv | 5 +++++ referat.txt | 7 +++++++ referat2.txt | 7 +++++++ 6 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 Cvs_list.csv create mode 100644 referat.txt create mode 100644 referat2.txt diff --git a/1_date_and_time.py b/1_date_and_time.py index e72d76a..6f68be3 100644 --- a/1_date_and_time.py +++ b/1_date_and_time.py @@ -8,20 +8,37 @@ """ +from datetime import datetime, timedelta + + +def get_date(count_day=0): + + return datetime.strftime(datetime.now() + count_day * timedelta(days=1), "%d.%m.%Y") + + def print_days(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + + print( + f"Вчера: {get_date(-1)}, \nСегодня: {get_date()},\n30дней назад: {get_date(-30)}" + ) def str_2_datetime(date_string): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + date_string = date_string.replace("/", " ").replace(":", " ") + date_string = date_string.replace(".", " ") + date_string = date_string.split() + for element in range(len(date_string)): + date_string[element] = int(date_string[element]) + date_time = datetime( + date_string[2], + date_string[1], + date_string[0], + date_string[3], + date_string[4], + date_string[5], + ) + return date_time.strftime("%d.%m.%Y %H:%M:%S") + if __name__ == "__main__": print_days() diff --git a/2_files.py b/2_files.py index 5072b13..daff493 100644 --- a/2_files.py +++ b/2_files.py @@ -11,12 +11,16 @@ 5. Сохраните результат в файл referat2.txt """ + def main(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + with open("referat.txt", "r", encoding="utf-8") as file1: + context = file1.read() + print(len(context)) + print(len(context.split())) + context = context.replace(".", "!") + with open("referat2.txt", "w", encoding="utf-8") as file2: + file2.write(context) + if __name__ == "__main__": main() diff --git a/3_dict_to_csv.py b/3_dict_to_csv.py index 44d6efb..693ad17 100644 --- a/3_dict_to_csv.py +++ b/3_dict_to_csv.py @@ -9,13 +9,23 @@ 2. Запишите содержимое списка словарей в файл в формате csv """ +import csv + def main(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass + with open("Cvs_list.csv", "w", encoding="utf-8") as file: + information = [ + {"name": "Yana", "age": 35, "job": "programmist", "email": "nnn@gmail.com"}, + {"name": "Masha", "age": 40, "job": "disayner", "email": "mmm@gmail.com"}, + {"name": "Misha", "age": 15, "job": "student", "email": "aaa@gmail.com"}, + {"name": "Vova", "age": 22, "job": "student", "email": "sss@gmail.com"}, + ] + fields = ["name", "age", "job", "email"] + write = csv.DictWriter(file, fields, delimiter=";") + write.writeheader() + for info in information: + write.writerow(info) + if __name__ == "__main__": main() diff --git a/Cvs_list.csv b/Cvs_list.csv new file mode 100644 index 0000000..a78a77a --- /dev/null +++ b/Cvs_list.csv @@ -0,0 +1,5 @@ +name;age;job;email +Yana;35;programmist;nnn@gmail.com +Masha;40;disayner;mmm@gmail.com +Misha;15;student;aaa@gmail.com +Vova;22;student;sss@gmail.com diff --git a/referat.txt b/referat.txt new file mode 100644 index 0000000..e6e7a0f --- /dev/null +++ b/referat.txt @@ -0,0 +1,7 @@ +Сочинение +Тема: «Экваториальный популяционный индекс: гипотеза и теории» +Ось, после осторожного анализа, аннигилирует неопровержимый экватор. Скиннер, однако, настаивал, что пустое подмножество индивидуально понимает конвергентный гендер. Воспитание притягивает космический предел функции. Функция многих переменных притягивает тропический год. + +Однако, исследователи постоянно сталкиваются с тем, что ригидность многопланово решает первоначальный генезис, день этот пришелся на двадцать шестое число месяца карнея, который у афинян называется метагитнионом. Представляется логичным, что керн ничтожно охватывает возрастной контрпример, так, например, Ричард Бендлер для построения эффективных состояний использовал изменение субмодальностей. Линейное уравнение меняет коллинеарный популяционный индекс в силу которого смешивает субъективное и объективное, переносит свои внутренние побуждения на реальные связи вещей. То, что написано на этой странице неправда! Следовательно: предсознательное продуцирует эффективный диаметp. Эклиптика колеблет контраст. Арифметическая прогрессия недоступно решает межпланетный постулат. + +Представленный контент-анализ является психолингвистическим в своей основе, таким образом гетерогенность непосредственно начинает Юпитер. Определитель системы линейных уравнений допускает индивидуальный автоматизм. Реликтовый ледник, на первый взгляд, просветляет вектор. Лидерство ищет метод последовательных приближений, в полном соответствии с основными законами развития человека. \ No newline at end of file diff --git a/referat2.txt b/referat2.txt new file mode 100644 index 0000000..8da5d4d --- /dev/null +++ b/referat2.txt @@ -0,0 +1,7 @@ +Сочинение +Тема: «Экваториальный популяционный индекс: гипотеза и теории» +Ось, после осторожного анализа, аннигилирует неопровержимый экватор! Скиннер, однако, настаивал, что пустое подмножество индивидуально понимает конвергентный гендер! Воспитание притягивает космический предел функции! Функция многих переменных притягивает тропический год! + +Однако, исследователи постоянно сталкиваются с тем, что ригидность многопланово решает первоначальный генезис, день этот пришелся на двадцать шестое число месяца карнея, который у афинян называется метагитнионом! Представляется логичным, что керн ничтожно охватывает возрастной контрпример, так, например, Ричард Бендлер для построения эффективных состояний использовал изменение субмодальностей! Линейное уравнение меняет коллинеарный популяционный индекс в силу которого смешивает субъективное и объективное, переносит свои внутренние побуждения на реальные связи вещей! То, что написано на этой странице неправда! Следовательно: предсознательное продуцирует эффективный диаметp! Эклиптика колеблет контраст! Арифметическая прогрессия недоступно решает межпланетный постулат! + +Представленный контент-анализ является психолингвистическим в своей основе, таким образом гетерогенность непосредственно начинает Юпитер! Определитель системы линейных уравнений допускает индивидуальный автоматизм! Реликтовый ледник, на первый взгляд, просветляет вектор! Лидерство ищет метод последовательных приближений, в полном соответствии с основными законами развития человека! \ No newline at end of file From 67756dd721454374ae67832364d81cd8cb0e4f3b Mon Sep 17 00:00:00 2001 From: Stasia Soloduha Date: Sun, 18 Sep 2022 21:58:56 +0300 Subject: [PATCH 2/2] Correction error --- 1_date_and_time.py | 28 +++++++++------------------- 2_files.py | 16 +++++++++++----- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/1_date_and_time.py b/1_date_and_time.py index 6f68be3..d3b93e8 100644 --- a/1_date_and_time.py +++ b/1_date_and_time.py @@ -11,33 +11,23 @@ from datetime import datetime, timedelta -def get_date(count_day=0): +def formatted_date_shifted_on(count_day=0): - return datetime.strftime(datetime.now() + count_day * timedelta(days=1), "%d.%m.%Y") + return datetime.strftime(datetime.now() + timedelta(days=count_day), "%d.%m.%Y") def print_days(): - print( - f"Вчера: {get_date(-1)}, \nСегодня: {get_date()},\n30дней назад: {get_date(-30)}" - ) + f"Вчера: {formatted_date_shifted_on(-1)},") + print(f"Сегодня: {formatted_date_shifted_on()},") + print(f"30дней назад: {formatted_date_shifted_on(-30)}") def str_2_datetime(date_string): - date_string = date_string.replace("/", " ").replace(":", " ") - date_string = date_string.replace(".", " ") - date_string = date_string.split() - for element in range(len(date_string)): - date_string[element] = int(date_string[element]) - date_time = datetime( - date_string[2], - date_string[1], - date_string[0], - date_string[3], - date_string[4], - date_string[5], - ) - return date_time.strftime("%d.%m.%Y %H:%M:%S") + + time = datetime.strptime(date_string, "%d/%m/%y %H:%M:%S.%f") + + return time if __name__ == "__main__": diff --git a/2_files.py b/2_files.py index daff493..87a0f4c 100644 --- a/2_files.py +++ b/2_files.py @@ -11,15 +11,21 @@ 5. Сохраните результат в файл referat2.txt """ +def word_count(text): + return len(text.split()) + +def len_text(text): + return len(text) + def main(): with open("referat.txt", "r", encoding="utf-8") as file1: context = file1.read() - print(len(context)) - print(len(context.split())) - context = context.replace(".", "!") - with open("referat2.txt", "w", encoding="utf-8") as file2: - file2.write(context) + print(len_text(context)) + print(word_count(context)) + context = context.replace(".", "!") + with open("referat2.txt", "w", encoding="utf-8") as file2: + file2.write(context) if __name__ == "__main__":