Сырой текст → плоская карточка
Простой скрипт, который берёт сырой текст задания (например, из PDF‑файла) и преобразует его в плоскую карточку – готовый к использованию шаблон для обучения.
В проекте реализованы два основных файла:
| Файл | Что делает |
|---|---|
extract_text.py |
Извлекает текст из PDF‑файла (или другого источника) и сохраняет его в .txt. |
flatten_card.py |
Читает сырой текст, разбивает его на логические блоки (описание, условия, примеры), форматирует и выводит «плоскую карточку» в консоль или в файл. |
📦 Установка зависимостей
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# Установите зависимости из requirements.txt
pip install -r requirements.txt
requirements.txt содержит:
PyPDF2==3.0.1
python-docx==0.8.11 # если понадобится работа с DOCX
🚀 Запуск файлов
1️⃣ Извлечение текста из PDF
python extract_text.py --input path/to/assignment.pdf --output assignment.txt
--input– путь к исходному файлу (PDF, DOCX и т.д.).--output– куда сохранить извлечённый текст.
2️⃣ Форматирование в плоскую карточку
python flatten_card.py --input assignment.txt --output card.txt
--input– файл с сырым текстом.--output– путь, где будет сохранена «плоская» карточка.
Если опция не указана, результат выводится в консоль.
📄 Пример использования
Исходный PDF (assignment.pdf)
Задание: Написать программу, которая считает сумму двух чисел.
Условие:
- Вводятся два целых числа.
- Вывести их сумму.
Пример:
Ввод: 3 5
Вывод: 8
Команды
python extract_text.py --input assignment.pdf --output raw.txt
python flatten_card.py --input raw.txt --output card.txt
Полученная карточка (card.txt)
Задание:
Написать программу, которая считает сумму двух чисел.
Условие:
- Вводятся два целых числа.
- Вывести их сумму.
Пример:
Ввод: 3 5
Вывод: 8
📚 Что дальше?
- Добавить поддержку Markdown‑форматирования (
--format markdown). - Интегрировать с Anki для автоматической импорта карточек.
- Расширить парсер, чтобы корректно обрабатывать таблицы и списки.
Контрибьюторы
Если хотите помочь – откройте issue или pull request.
Пожалуйста, соблюдайте стиль кода из PEP8 и добавляйте тесты в папку tests/.
Автор: [Ваше имя]
Дата создания: 2026‑05‑26