Creating Flashcards

I’ve been studying for another Maths exam. This time it’s the Open University M343 “Applications of Probability” course. It’s exam time so I’ve been making flash-cards to study with.

My current process for making the flashcards is to open the PDF course notes, run my Flashcard Creator program, and copy and paste the PDF exercises / solutions into Flashcard Creator, which then saves the PDF regions to a directory.

I open Terminal.app and transfer to the directory with all the PDF regions of exercises / solutions, and run a script that calls my PdfRectToPng program.

The PdfRectToPng program converts the PDF files to PNG files and also trims them down, so they aren’t A4-sized.

Finally I run the following script on the directory that creates the Anki text import file.

build_anki_import_file.py

#!/usr/bin/python
import os, sys, glob

class Problem:
    def __init__(self, key):
        self.key = key
        self.questions = []
        self.answers = []

if len(sys.argv) != 2 or not os.path.isdir(sys.argv[1]):
    print("Usage: %s <image_dir>" % (sys.argv[0], ))
    exit(0)

problems = {}

image_dir = sys.argv[1]
files = glob.glob(os.path.join(image_dir, '*.png'))
for filename in files:
    bn = os.path.basename(filename)
    probkey = bn[0:11]
    qa_text = bn[12:13]

    if not probkey in problems:
        problems[probkey] = Problem(probkey)
    prob = problems[probkey]
    if qa_text == 'q':
        prob.questions.append(bn)
    else:
        prob.answers.append(bn)

probkeys = problems.keys()
probkeys.sort()
for probkey in probkeys:
    prob = problems[probkey]

    sectnum = probkey[6:8]
    qnum = probkey[9:11]

    #sys.stdout.write("<h2>Section %s Question %s</h2>\n" % (sectnum,     qnum))

    for q in prob.questions:
        sys.stdout.write('<img src="%s" />' % (q, ))
    sys.stdout.write("\t")
    for a in prob.answers:
        sys.stdout.write('<img src="%s" />' % (a, ))
    sys.stdout.write("\n")