skip to navigation
skip to content

d2lmf 1.0.0

A command-line tool to help mark assignments submitted to D2L.


It’s frustrating dealing with the zip files full of assignment submissions that you get from D2L.

  • Merging all of a student’s submissions into a single folder is tedious.
  • Navigating submissions on the command line sucks, because each directory name starts with a long number.
  • Extracting all the zip files, tar archives, and 7z archives that students submit adds a needless extra step to marking.

I’ve found this tool useful for eliminating those annoyances, and I hope you will too.

How to Use

This is the most common command I use:

d2lmf extract -R "Assignment 1 Download Oct 11, 2015 803" A1/T01

It extracts the submissions from the zip folder into the directory A1/T01. The -R option makes it run all the recommended cleanup actions on the submissions, and is equivalent to using -x, -j, -c and -m.

The -x specifies that we want to extract any zip, rar, tar, or 7z archives that students submitted. The -j deletes ‘junk’ like .DS_Store. The -c collapses needlessly nested directories. Finally, the -m merges all submitted files into a single directory for each student.

On Windows, you may need to invoke d2lmf as a Python module, like so:

python -m d2lmf extract -R "Assignment 1 Download Oct 11, 2015 803" A1/T01

How to Install


sudo apt-get install python-pip
sudo pip install d2lmf


curl >
sudo python
sudo pip install d2lmf


First, download and install Python from

Then, install d2lmf with the command below:

python -m pip install d2lmf


The extraction of rar and 7z archives depends on external tools. If you do not have a rar or 7z utility installed, those archives will be skipped.

On Windows, I suggest installing 7-Zip. On Ubuntu, p7zip is the equivalent, and it can be installed with sudo apt-get install p7zip-full. p7zip is also available for OSX, and can be installed from homebrew with brew install p7zip.

File Type Py Version Uploaded on Size
d2lmf-1.0.0-py2.py3-none-any.whl (md5, pgp) Python Wheel py2.py3 2018-01-16 8KB
d2lmf-1.0.0.tar.gz (md5, pgp) Source 2018-01-16 18KB