- Python версии не ниже 3.5 (ссылка для скачивания)
Использование ресурсов:
- Размер лог-файла: 1.74Гб
- Использованная память: 70Мб
- Время обработки (данные на SSD): 36с
- Размер результата: 17Мб
- Загрузка CPU 25% (Core i5-4460 3.2GHz)
import converter
converter.convert(
course_file, # Путь к файлу со структурой курса
answers_file, # Путь к файлу с ответами
courses_file, # Путь к файлу с названиями курсов
logs_file, # Путь к файлу с логами
encoding, # Кодировка файлов
output # Каталог, в который выводить результат
)
Если какие-то файлы отсутствуют, необходимо передать пустую строку.
Кодировку желательно указывать utf8.
Каталог, в который будет выводиться результат, должен быть предварительно создан.
Парсер преобразует логи EdX в формат 5CSV.
Парсер работает со следующими данными:
-
Лог-файл EdX
Описание формата файла доступно по ссылке.
-
Структура курсов
Файл имеет текстовый формат. Строки выглядят следующим образом:
course_id+type@chapter+block@block_id;...;Название_модуля -
Файл ответов студентов
Файл имеет текстовый формат. Строки выглядят следующим образом:
1;course_id+type@problem+block@block_id;block_id_4_1;user_id;username;answer_time;correct;...;question;process_time -
Файл с названиями курсов
Файл имеет текстовый формат. Строки выглядят следующим образом:
course_id;Название_курса[;roo_course_id]Параметр roo_course_id не обязательный. Каждая строка может состоять только из 2х значений:
course_id;Название_курса
-
Запустить парсер
$ python main.py --logs ../data/logs --course ../data/course --answers ../data/answers --courses ../data/course_names csv- Файл
../data/logs— лог-файл EdX (в текстовом формате) - Файл
../data/course— файл структуры курсов (в текстовом формате). Может отсутствовать. - Файл
../data/answers— файл ответов студентов (в текстовом формате). Может отсутствовать. - Фаёл
../data/course_names— файл с названиями курсов (в текстовом формате). Может отсутствовать.
- Файл
-
Результатом работы будут файлы
csv{1..5}.csvв текущем каталоге и файлcourse.jsonс названием курса.
Для изменения каталога вывода результата его нужно передать последним аргументом при запуске:
$ python main.py --logs ../data/logs --course ../data/course --answers ../data/answers --courses ../data/course_names my/catalog/
Результатом будут файлы my/catalog/csv{1..5}.csv и my/catalog/course.json.