/
dayekb
/
vibecoding_vkr_citation_parser
Обзор
Документация
Войти
/
dayekb
/
vibecoding_vkr_citation_parser
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
example_usage.py
68 строк
3 KB
dayekb
upload files
05 окт 2025, 14:32
05 окт 2025, 14:32
d089abf
Код
Авторство
О чём код?
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Пример использования парсера цитат дипломной работы Использование: python example_usage.py <путь_к_файлу.docx> или python example_usage.py <путь_к_файлу.pdf> """ import sys import json from citation_parser import CitationParser def main(): if len(sys.argv) != 2: print("Использование: python example_usage.py <путь_к_файлу>") print("Поддерживаемые форматы: .docx, .pdf") sys.exit(1) file_path = sys.argv[1] if not file_path.lower().endswith(('.docx', '.pdf')): print("Ошибка: Поддерживаются только файлы .docx и .pdf") sys.exit(1) try: # Создаем парсер parser = CitationParser(file_path) # Парсим документ result = parser.parse() # Выводим статистику print(f"Найдено {len(result['references'])} ссылок в списке литературы") print(f"Найдено {len(result['citations'])} цитат в тексте") # Выводим первые 10 цитат print("\nПервые 10 цитат:") print("-" * 80) for i, citation in enumerate(result['citations'][:10]): print(f"{i+1}. Цитата №{citation['citation_number']}") print(f" Контекст: {citation['context'][:150]}...") print(f" Ссылка: {citation['citation'][:100]}...") print() # Сохраняем результат в JSON output_file = file_path.rsplit('.', 1)[0] + '_citations.json' parser.save_to_json(output_file) print(f"\nПолный результат сохранен в файл: {output_file}") # Выводим информацию о диапазонах цитат range_citations = [c for c in result['citations'] if '-' in str(c.get('citation_text', ''))] if range_citations: print(f"\nНайдено {len(range_citations)} диапазонов цитат") print("Примеры:") for citation in range_citations[:3]: print(f" {citation.get('citation_text', '')} -> Контекст: {citation['context'][:100]}...") except Exception as e: print(f"Ошибка при обработке файла: {e}") sys.exit(1) if __name__ == "__main__": main()