Я написал полезный скрипт на Python - ParseCF

Он проанализирует все конкурсы Codeforces, в которых конкретный пользователь участвовал до настоящего времени, создаст отдельные папки для каждого конкурса, и каждая папка будет содержать все материалы, представленные пользователем для этого конкретного конкурса, отсортированные по названиям задач.

Для такого парня, как я, который любит организовывать все мои представления codeforces, этот скрипт экономит много ненужного времени при организации кодов в папках. Наконец, я могу отправить все свои коды в Github одним щелчком мыши.

ЦЕЛИ этого парсера:

  1. Спросите у пользователя имя пользователя и количество недавних конкурсов для анализа.
  2. Настройте правильное дерево каталогов в родительском каталоге, чтобы каждая папка имела формат (имя-конкурса + имя пользователя).
  3. Каждая папка содержит все решения пользователя, имеющие отдельные файлы для отдельных вопросов (A, B, C ..), а также файл contest-info .txt, который включает в себя все прочие подробности о пользователе в текущем конкурсе.

Все подробные инструкции по запуску этого скрипта доступны на моем Github.

Теперь достаточно теории! Позвольте мне показать вам демо.

Допустим, я хочу разобрать 5 недавних конкурсов легендарного туриста, то есть. Когда скрипт предложит мне ввести имя пользователя, я наберу турист

Тогда скребок будет

  • покажите мне общее количество конкурсов, в которых турист участвовал до настоящего времени
  • спросите меня, сколько недавних конкурсов я хочу проанализировать: допустим, 3

Как только я наберу 3 и нажму Enter, начнется синтаксический анализ.

Чтобы ваше ожидание было менее скучным, я сделал так, чтобы скрипт выдавал тексты журнала, когда он проводит конкурсы синтаксического анализа.

Обратите внимание, что в родительском каталоге сейчас нет другой папки, кроме файла cf py прямо сейчас.

Приступим к разбору.

Как видите, мгновенно папка для первого конкурса была создана, и в журнале говорится то же самое. Он спит 5 секунд :) и затем начнет очищать соответствующие решения для этого раунда.

Это совпадение, что первым отскобленным решением для туриста является WA на предварительном тесте 10.

Ха-ха :)

Таким образом, он продолжает выполнять парсинг и выполнять свою работу. На этом этапе файлы добавляются в первую папку.

Ура !!

Первый конкурс (самый последний) был проанализирован, и он начал анализировать второй конкурс, поскольку вы можете видеть, что папка для Manthan-Codefest создана!

Очень много работает :)

Переходим к третьему и последнему для нас конкурсу ...

Теперь, после долгой тяжелой работы, давайте посмотрим, что из этого получится!

На приведенном выше рисунке видно, что анализ завершен!

Теперь позвольте мне показать вам структуру каталогов внутри каждой папки.

Итак, 3 папки…

Входим в первую папку -:

Как видите, все проблемы были успешно устранены с помощью соответствующих расширений. Также имеется дополнительный файл contest-info.txt. Давайте исследуем его содержание.

Как видите, он содержит всю разную информацию об эффективности туриста в этом раунде, например рейтинг, изменение рейтинга и т. Д.

Пойдем внутрь второго

Давайте зайдем в папку 3-го конкурса.

На этом успешная очистка завершена!

Бонус:

  • Если вы поместите файл cf py в инициализированный репозиторий git, он автоматически запишет добавленные файлы, и вы сможете просто сделать одну фиксацию и загрузить их в github.
  • Вы можете сравнить производительность и код ваших cf-друзей в недавних конкурсах, в которых вы оба участвовали. Просто запустите скрипт еще раз и упомяните имя пользователя вашего друга, и все готово идти.
  • Как упоминалось выше, репозиторий ParseCF доступен на моем гитхабе JanaSabuj / ParseMyCF-contest. Вы можете вносить улучшения или сообщать об обнаруженных вами ошибках с помощью запроса на вытягивание, вилки или звездочки.

Бонус2:

Вот короткое видео, где я разбираю конкурсы моего любимого программиста.

Имя пользователя: Ашишгуп

Это мой первый скрипт на Python, и я надеюсь, он вам пригодится!

Первоначально опубликовано на http://quora.com.