Op basis daarvan heb ik dan een functie readfile() gemaakt die de tekst opent en omzet in een lijst van lijnen. Om de verschillende sudokus gemakkelijk te kunnen manipuleren heb ik een functie classify() gemaakt die de lijnen lezen en de verschillende sudokus groeperen in een dictionnary.
Om de functies te zien, klik op meer lezen.
Om de functies te zien, klik op meer lezen.
def readfile(filename):
#verificate filename to avoid '\'
filename = filename.replace("\\","/")
lines = open(filename).readlines()
#avoids end of line space marker "\n"
for i in range(len(lines)):
line = lines[i]
lines[i] = line.replace("\n","")
return lines
def classify(lines,rootname="",only_suffix=1,digit=1):
dico = {}
els = []
name = ""
for i in range(len(lines)):
line = lines[i]
if rootname in line:
if not len(els) == 0:
if digit:
dico.update({name:[[int(char)for char in el] for el in els]})
else:dico.update({name:els})
els = []
if only_suffix:
try:
name = int(line.replace(rootname,""))
except:
name = line.replace(rootname,"")
else:
name = line
elif i == len(lines)-1:
els += [line]
if digit:
dico.update({name:[[int(char) for char in el]
for el in els]})
else:
dico.update({name:els})
else:
els += [line]
return dico
Geen opmerkingen:
Een reactie posten