blob: 7ba5fa630743df593708326973534d6adca3be9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/usr/bin/python3
import re
import sys
from pathlib import Path
from random import shuffle
'''
class color:
PURPLE = '\033[95m'
CYAN = '\033[96m'
DARKCYAN = '\033[36m'
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
END = '\033[0m'
print color.BOLD + 'Hello World !' + color.END
'''
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()
|