Skip to main content

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

Project description


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.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for d2lmf, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size d2lmf-1.0.0-py2.py3-none-any.whl (9.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size d2lmf-1.0.0.tar.gz (19.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page