Задачи
Задача 1. Сделать директорию с тестами для ejudge по файлу тестов
Для проверяющей системы Ejudge тесты должны быть записаны в виде файлов входных данных 001.dat, 002.dat, 003.dat и так далее. И в виде эталона выходных данных по этим входным данным. Эталонные выходные данные пишутся в файлы 001.ans, 002.ans и т.п.
Запишем входные и выходные данные всех тестов в один файл, по которому будем генерировать эти файлы. В файл пишем данные в формате
входные данные теста 1
---
выходные данные теста 1
===
входные данные теста 2
---
выходные данные теста 2
===
входные данные теста 3
---
выходные данные теста 3
===
Написать программу, которая в аргументах командной строки получает общий тестовый файл и в той же директории, где лежит этот общий тестовый файл делает директорию tests с файлами 001.dat, 001.ans, 002.dat, 002.ans и так далее.
python gentest.py ../task1/alltest.txt
Ожидаемая структура директории task1:
task1/
+--- alltest.txt
+--- tests
+---- 001.dat
+---- 001.ans
+---- 002.dat
+---- 002.ans
+---- 003.dat
+---- 004.ans
Дополнительное задание EOL
Даже если в файле alltest.txt
концы файла записаны в стиле Windows или Mac, в файлах тестов сделать строго '\n' как конец строки.
Задача 2. Бэкап
Запуск:
backup.py now 2018_11_18
Делает бэкап файлов из директории now в директорию 2018_11_18 по следующим правилам:
Задача 2 (на строки и разбор аргументов командной строки) Генератор пароля (by Головизин)
Генерируем пароль, состоящий из случайных:
- буковок,
- буковок + циферок,
- буковок + циферок + буковок в верхнем регистре,
- буковок + циферок + буковок в верхнем регистре + цифирьки в верхнем регистре заданной строки (это означает "синтаксические знаки, которые получаются при нажатии на кнопку с цифрой и нажатым Shift, т.е. !@#$%^&*()_+-=)
В консоли задаётся аргументами:
- Длина пароля (по умолчанию 8)
- Сложность (от 1 до 4, см. выше) или алфавит пароля
- Доп.задание: Использовать только английские буковки, или же английские + русские
Пароль выводим в консоль.
Задача 3. Обзорщик жесткого диска (by Головизин)
Программа показывает следующую информацию:
- Сколько файлов какого типа (по расширению) есть в указанной директории? Сколько папок?
- Сколько места занимают файлы каждого типа?
- (Дополнительно++) Какие файлы и папки самые большие по размеру (папки — вместе с вложенными файлами)?
Аргументами командной строки задаётся:
- путь к директории, с которой начнём поиски.
- какие запросы делать (количество файлов разного типа, размер файлов разного типа)
- Максимальный размер таблицы (по умолчанию — только 10 самых часто встречающихся типов файлов).
NB: Таблички с результатами выводить с помощью модуля PTable или Tabulate