Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

multi-platform GUI and CLI based program for memorizing and studying

Project description

Multi-platform command-line and GUI program for helping you study. You create your own flash cards and flip them to memorize words, definitions or whatever else you need. You can group virtual flash cards to stacks. These stacks are actual files that hold the data. flashCardStudy thus is not database-based but file-based. CLI part reads any stacks / stack files in current directory. These files have .stk extension and you can select which ones to load. GUI part uses a default folder on your system to store the files.


This is a standard package written in Python 2.7. Simply clone the repo, navigate to folder where is and simply type (optionally put sudo in front of it if you’re not a super user):

python install

The package is also available on PyPi so you can install it by using [pip](

pip install flashCardStudy

Installation to virtualenv is simple too. If you do not want to install the package and just plainly use the utility, you will find the executable script in bin/ The package contains two dependencies: PrettyTable ( and appdirs ( These should be installed automatically when using pip or setuptools.


The easiest way to use the program is to launch __GUI__ and go from there:

flashstudy –gui

If you want to use command line, simply feed stack files and parameters by using flashstudy executable. To see all the options, you can launch help:

flashstudy -h

Every stack has an ID, name and contains the cards. Cards must always be in stack. Stack ID defines its order, stack name defines the filename. Each stack file has .stk extension and is simple binary file created by Pickle ( module.

Cards have their order as well which can be changed by using -e or –edit argument. You can have as many stacks containing as many cards as you want. You pass stacks (.stk files) as arguments plus modifier arguments. You can avoid passing filenames to utility by using -a or –all argument and combine it with modifier arguments.


You usually read files in command line from current directory and pass their whole names. When in GUI, the program keeps files in its own location. This location is based on operating system you’re using:

__OS X:__
~/Library/Application Support/flashCardStudy/flashcards/
C:Documents and Settings<User>Application DataLocal SettingsOndrej SynacekflashCardStudyflashcards
C:Documents and Settings<User>Application DataOndrej Synacekflashstudyflashcards

You can change the default folder my editing the config file flashcardstudy.conf which is located in parent directory of the flashcards/ directory from above. Change parameter flashcards_path in the file to do this. You must relaunch the GUI for changes to take the effect.


Create new stack

flashstudy -n

Start session

flashstudy [filename1.stk] [filename2.stk] -d -r

This will display cards from stacks _filename1_ and _filename2_. User will be presented with cards in random fashion but stacks will keep their order.

flashstudy –all -v

All stacks in current directory will be used, sides of the cards will be flipped because of the -v (also –reverse) argument. You must always use either -d or -a for session to start. You can optionally add arguments (see below).

Edit a stack

flashstudy [filename1.stk] –edit

This will launch interface for editing _filename1_ stack. You can add another cards here, as well as delete them. You can also reorder the cards if you want to have cards displayed in certain way. You can only pass one stack file with -e/–edit argument, you can only edit one file at a time.


-n –new: Creates new stack file.

-e –edit: Edit stack file.

-l –list: List stacks and info in current directory.

-o –order: Reorder stacks in current directory.

-d –display: Will display/start session for given stack(s).

-a –all: Will display/start session for all stacks in current directory.

-r –random: Cards from stack are displayed randomly.

-s –stack: Next stack will be randomly selected.

-v –reverse: Flips the sides of cards.

-w –wildcard: Jumps between stacks AND cards in randomly.

You must provide stack file(s) for these arguments:

-d –display

-r –random

-s –stack

-v –reverse

-w –wildcard

You don’t provide stack file for these arguments:

-n –new

-e –edit

-l –list

-o –order

-a –all

-h –help



When using -e or –edit argument, you can only pass single stack file.

You can substitute stack files plus -d or –display with -a or –all argument.

To be added

GUI has to be tweaked a little. I want to add settings window that will allow the user to change default directory for stack files. Import/export functions will be added so you can add data from different sources (most likely CSV and XML).

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 flashCardStudy, version 1.0.6
Filename, size File type Python version Upload date Hashes
Filename, size flashCardStudy-1.0.6.tar.gz (20.1 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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page