Найти в Дзене
Заметки по Python

Основы Linux

Чтобы работать с Flask-приложениями, необходимо обладать базовыми навыками работы в Linux-системах. С помощью команды ps можно посмотреть список запущенных процессов. С флагами aux эта команда выведет информацию обо всех процессах, запущенных в системе. Запустите эту команду и сохраните выданный результат в файл: $ ps aux > output_file.txt Столбец RSS показывает информацию о потребляемой памяти в байтах. Напишите функцию get_summary_rss, которая на вход принимает путь до файла с результатом выполнения команды ps aux, а возвращает суммарный объём потребляемой памяти в человекочитаемом формате. Это означает, что ответ надо перевести в байты, килобайты, мегабайты и так далее. Ответ нужно вывести в одной единице измерения. Удобно направлять результат выполнения команды напрямую в программу с помощью конвейера (pipe): $ ls -l | python3 get_mean_size.py Напишите функцию get_mean_size, которая на вход принимает результат выполнения команды ls -l, а возвращает средний размер файла в каталоге.
Оглавление

Чтобы работать с Flask-приложениями, необходимо обладать базовыми навыками работы в Linux-системах.

Задача 1. Список процессов

С помощью команды ps можно посмотреть список запущенных процессов.

С флагами aux эта команда выведет информацию обо всех процессах, запущенных в системе.

Запустите эту команду и сохраните выданный результат в файл:

$ ps aux > output_file.txt

Столбец RSS показывает информацию о потребляемой памяти в байтах.

Напишите функцию get_summary_rss, которая на вход принимает путь до файла с результатом выполнения команды ps aux, а возвращает суммарный объём потребляемой памяти в человекочитаемом формате. Это означает, что ответ надо перевести в байты, килобайты, мегабайты и так далее.

Ответ нужно вывести в одной единице измерения.

Задача 2. Средний размер файла

Удобно направлять результат выполнения команды напрямую в программу с помощью конвейера (pipe):

$ ls -l | python3 get_mean_size.py

Напишите функцию get_mean_size, которая на вход принимает результат выполнения команды ls -l, а возвращает средний размер файла в каталоге.

-2

Задача 3. Дешифратор

Вася решил передать Пете шифрограмму.

Поскольку о промышленных шифрах Вася ничего не знает, он решил зашифровать сообщение следующим образом: он посылает Пете строку.

1. Каждый символ строки — либо буква, либо пробел, либо точка «.», либо две точки «..».

2. Если после какой-то буквы стоит точка, значит, мы оставляем букву без изменений (об одной точке Вася задумался, чтобы усложнить расшифровку). Саму точку при этом надо удалить.

3. Если после какой-то буквы стоят две точки, то предыдущий символ надо стереть. Обе точки при этом тоже нужно удалить.

4. Возможна ситуация, когда сообщение после расшифровки будет пустым. В качестве результата можно вернуть просто пустую строку.

Помогите Пете написать программу для расшифровки.

Напишите функцию decrypt, которая принимает на вход шифр в виде строки, а возвращает расшифрованное сообщение.

Программа должна работать через конвейер (pipe).

-3

Задача 4. Хорошего дня!

Реализуйте endpoint /hello-world/<имя>, который возвращает строку «Привет, <имя>. Хорошей пятницы!». Вместо хорошей пятницы endpoint должен уметь желать хорошего дня недели в целом, на русском языке.

-4

Задача 5. Максимальное число

Реализуйте endpoint, начинающийся с /max_number, в который можно передать список чисел, разделённых слешем /. Endpoint должен вернуть текст «Максимальное переданное число {number}», где number — выделенное курсивом наибольшее из переданных чисел.

-5

Задача 6. Превью файла

Реализуйте endpoint, который показывает превью файла, принимая на вход два параметра: SIZE (int) и RELATIVE_PATH — и возвращая первые SIZE символов файла по указанному в RELATIVE_PATH пути.

Endpoint должен вернуть страницу с двумя строками.

В первой строке будет содержаться информация о файле: его абсолютный путь и размер файла в символах, а во второй строке — первые `SIZE` символов из файла:

Перенос строки осуществляется с помощью HTML-тега <br>.

-6

Задача 7. Учёт финансов

Реализуйте приложение для учёта финансов, умеющее запоминать, сколько денег было потрачено за день, а также показывать затраты за отдельный месяц и за целый год.

В программе должно быть три endpoints:

  • /add/<date>/<int:number> — сохранение информации о совершённой в рублях трате за какой-то день;
  • /calculate/<int:year> — получение суммарных трат за указанный год;
  • /calculate/<int:year><int:month> — получение суммарных трат за указанные год и месяц.

Дата для /add/ передаётся в формате YYYYMMDD, где YYYY — год, MM — месяц (от 1 до 12), DD — число (от 01 до 31). Гарантируется, что переданная дата имеет такой формат и она корректна (никаких 31 февраля).

-7

Не забывайте подписаться. Продолжение следует)