#!/usr/bin/python3 import re import sys from pathlib import Path from random import shuffle cardRegex = "CARD: " prefixLength = len(cardRegex) # Returns a list of Path objects, containing the path to each valid file provided def getFileList(): fileList = [] if len(sys.argv) > 1: for f in sys.argv[1:]: path = Path(f) if path.exists() and path.is_file(): fileList.append(f) return fileList else: print("Missing arguments") sys.exit() # Returns cards in the form [(front, back)] def createCardList(files): cards = [] for f in files: cards = cards + extractCards(f) return cards # Extracts cards from a single file into a list of the form [(front, back)] def extractCards(f): front = "" back = "" cards = [] with open(f) as cardFile: for l in cardFile: match = re.match(cardRegex, l) if match: if front != "": cards.append([front.strip(), back.strip()]) back = "" front = match.string[prefixLength:] else: back += l # do the last front-back pair before returning cards.append([front.strip(), back.strip()]) return cards # Loops serving cards to the user until the program is exited def serveCards(cards): while True: for card in cards: print("----------------------------------------------------------------------------") print(card[0]) input() print(card[1]) input() def debugCards(cardList): for c in cardList: print("Front:", c[0]) print("Back:", c[1]) def main(): files = getFileList() cards = createCardList(files) shuffle(cards) serveCards(cards) if __name__ == "__main__": main()