diff --git a/kashin_maxim_lab_2/docker-compose.yml b/kashin_maxim_lab_2/docker-compose.yml index 29dc4c0..7d6813c 100644 --- a/kashin_maxim_lab_2/docker-compose.yml +++ b/kashin_maxim_lab_2/docker-compose.yml @@ -4,4 +4,21 @@ services: build: context: ./program_0 volumes: - - ./var/data:/data \ No newline at end of file + - ./var/data:/data + + program_1: + build: + context: ./program_1 + volumes: + - ./var/data:/data + - ./var/result:/result + depends_on: + - program_0 + + program_2: + build: + context: ./program_2 + volumes: + - ./var/result:/result + depends_on: + - program_1 \ No newline at end of file diff --git a/kashin_maxim_lab_2/program_1/Dockerfile b/kashin_maxim_lab_2/program_1/Dockerfile new file mode 100644 index 0000000..bd44d1d --- /dev/null +++ b/kashin_maxim_lab_2/program_1/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.12-slim + +WORKDIR /program_1 + +COPY main.py /program_1/ + +CMD ["python", "main.py"] \ No newline at end of file diff --git a/kashin_maxim_lab_2/program_1/main.py b/kashin_maxim_lab_2/program_1/main.py new file mode 100644 index 0000000..fb87bfd --- /dev/null +++ b/kashin_maxim_lab_2/program_1/main.py @@ -0,0 +1,52 @@ +from pathlib import Path +import os + +folder_path = '/result' +folder_generator = '/data' + +def creat_folder(): + if not os.path.exists(folder_path): + os.makedirs(folder_path) + print(f"Папка `{folder_path}` создана!") + else: + print(f"Папка `{folder_path}` уже существует!") + +def delete_files_in_folder(): + for filename in os.listdir(folder_path): + file_path = os.path.join(folder_path, filename) + try: + if os.path.isfile(file_path): + os.remove(file_path) + print(f"Файл `{file_path}` удален.") + except Exception as e: + print(f'Ошибка при удалении файла {file_path}. {e}') + +def creat_file(): + file = open(f'{folder_path}/data.txt', 'w+') + print(f"Создан файл: {folder_path}/data.txt") + for count in files_count(): + file.write(f'{count} \n') + file.close() + +def files_count(): + files = [] + files_count = [] + files += os.listdir(folder_generator) + for file in files: + line_count = sum(1 for line in open(folder_generator + '/' + file)) + files_count.append(line_count) + print(f"Файл {file} имеет {line_count} количество строк") + return files_count + + + +if os.path.exists(folder_path): + print(f"Папка `{folder_path}` существует, удаляем старые файлы...") + delete_files_in_folder() + creat_file() +else: + print(f"Папка `{folder_path}` не существует, создаем...") + creat_folder() + creat_file() + +print("Скрипт на задание 1.3 (Формирует файл /var/result/data.txt так, что каждая строка файла - количество строк в файлах из каталога /var/data.) выполнен.") diff --git a/kashin_maxim_lab_2/program_2/Dockerfile b/kashin_maxim_lab_2/program_2/Dockerfile new file mode 100644 index 0000000..d5e8b05 --- /dev/null +++ b/kashin_maxim_lab_2/program_2/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.12-slim + +WORKDIR /program_2 + +COPY main.py /program_2/ + +CMD ["python", "main.py"] \ No newline at end of file diff --git a/kashin_maxim_lab_2/program_2/main.py b/kashin_maxim_lab_2/program_2/main.py new file mode 100644 index 0000000..40a423a --- /dev/null +++ b/kashin_maxim_lab_2/program_2/main.py @@ -0,0 +1,48 @@ +from pathlib import Path +import os + +folder_path = '/result' + +def creat_folder(): + if not os.path.exists(folder_path): + os.makedirs(folder_path) + print(f"Папка `{folder_path}` создана!") + else: + print(f"Папка `{folder_path}` уже существует!") + +def delete_files_in_folder(): + for filename in 'result.txt': + file_path = os.path.join(folder_path, filename) + try: + if os.path.isfile(file_path): + os.remove(file_path) + print(f"Файл `{file_path}` удален.") + except Exception as e: + print(f'Ошибка при удалении файла {file_path}. {e}') + +def creat_file(): + file = open(f'{folder_path}/result.txt', 'w+') + print(f"Создан файл: {folder_path}/result.txt") + file.write(f'{max_nubmer_file()**2}') + print(f"Максимальное число: {max_nubmer_file()}") + print(f"Максимальное число в степени 2: {max_nubmer_file()**2}") + file.close() + +def max_nubmer_file(): + max_number = 0 + for line in open(f'{folder_path}/data.txt'): + if int(line) > max_number: + max_number = int(line) + return max_number + + +if os.path.exists(folder_path): + print(f"Папка `{folder_path}` существует, удаляем старые файлы...") + delete_files_in_folder() + creat_file() +else: + print(f"Папка `{folder_path}` не существует, создаем...") + creat_folder() + creat_file() + +print("Скрипт на задание 2.1 (Ищет набольшее число из файла /var/result/data.txt и сохраняет его вторую степень в /var/result/result.txt.) выполнен.")