DAS_2023_1/basharin_sevastyan_lab_2/README.md
2023-11-21 21:21:04 +04:00

70 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Лабораторная работа 1. Вариант 5.
#### Вариант первой программы:
Ищет в каталоге `/var/data` файл с самым коротким названием и перекладывает его в `/var/result/data.txt`.
#### Вариант второй программы:
Сохраняет произведение первого и последнего числа из файла `/var/data/data.txt` в `/var/result/result.txt`.
### Как запустить:
В директории с файлом `docker-compose` в консоли/терминале ввести команду `docker-compose up`
#### Файл сборки docker-compose.yaml
```dockerfile
version: "3"
services:
worker-1:
build:
context: /app1
dockerfile: Dockerfile
worker-2:
build:
context: /app2
dockerfile: Dockerfile
```
#### Dockerfile каждой программы
```dockerfile
FROM python:3.11
COPY . .
COPY var/data /var/data
COPY var/result /var/result
CMD ["python", "main.py"]
```
#### Код первой программы
```python
import os
def main():
data_dir = 'var/data'
result_file = '/var/result/data.txt'
min_name = min(os.listdir(data_dir)) # Ищем и записываем самое короткое название (включая расширение)
with open(result_file, 'w') as result:
result.write(min_name)
print(f'В файл {result_file} было записано {min_name}')
if __name__ == "__main__":
main()
```
#### Код второй программы
```python
def main():
data_path = 'var/data/data.txt'
result_path = 'var/result/result.txt'
data = []
with open(data_path, "r") as data_file:
data = list(map(lambda x: int(x), data_file.read().split()))
with open(result_path, 'w') as result:
result.write(f'{data[0] * data[-1]}')
print(f'В файл {result_path} было записано {data[0] * data[-1]}')
if __name__ == "__main__":
main()
```
### Видео
https://youtu.be/D7HKUqotLGA