Solution so far
This commit is contained in:
parent
23eec468cf
commit
83fb61e63b
|
@ -0,0 +1,12 @@
|
|||
20
|
||||
Gunsmoke
|
||||
30
|
||||
The Simpsons
|
||||
10
|
||||
Will & Grace
|
||||
14
|
||||
Dallas
|
||||
20
|
||||
Law & Order
|
||||
12
|
||||
Murder, She Wrote
|
|
@ -0,0 +1,61 @@
|
|||
class MutliKeyDict(dict):
|
||||
"""
|
||||
New Multi Key dict for this application, inherits 'dict'
|
||||
"""
|
||||
def __setitem__(self, key, value): # Overwrites the default __setitem__
|
||||
try:
|
||||
self[key]
|
||||
except KeyError: # If there is a key error (like we append the same season num twice)
|
||||
super(MutliKeyDict, self).__setitem__(key, []) # Make that value a list insted,
|
||||
self[key].append(value) # Append that new list and save
|
||||
|
||||
def pharse_shows(file_location):
|
||||
result = MutliKeyDict()
|
||||
try:
|
||||
with open(file_location) as f:
|
||||
for line in f:
|
||||
season = line.strip("\n")
|
||||
title = next(f).strip("\n")
|
||||
result[season] = title
|
||||
except StopIteration:
|
||||
print('Error pharsing last value, odd number of lines in file?')
|
||||
return(result)
|
||||
|
||||
def save_output_keys(showdict):
|
||||
result = '' # Set the result to a blank string
|
||||
showdict = dict(sorted(showdict.items())) # Sort the dict by key
|
||||
|
||||
for entry in showdict: # For every dict entry in our show dict
|
||||
result += '{0}: '.format(entry) # Append a new line to represent that entry season count
|
||||
if isinstance(showdict[entry], list): # If the entry is a list of shows
|
||||
for show in showdict[entry]: # for very entry in that list of shows
|
||||
result += '{0}; '.format(show) # append that show, and a ";"
|
||||
result = result[:-2] + '\n' # Chop the last ";", ugly but it works. Also add carriage return
|
||||
else: # If the entry is not a list
|
||||
result += '{0}'.format(showdict[entry])
|
||||
|
||||
with open('output_keys.txt', 'a') as f:
|
||||
f.write(result)
|
||||
|
||||
def save_output_titles(showdict):
|
||||
result = [] # Set the result to a blank list
|
||||
for entry in showdict: # For every dict entry in our show dict
|
||||
if isinstance(showdict[entry], list): # If the entry is a list of shows
|
||||
for show in showdict[entry]: # for every entry in that list of shows
|
||||
result.append(show) # Append that show to our result list
|
||||
else: # If the entry is not a list
|
||||
result.append(showdict[entry]) # Append the result directly
|
||||
|
||||
result.sort() # Sort the list
|
||||
|
||||
resultstring = '' # Setup a new blank result string
|
||||
for item in result: # Convert list to stirng, with \n
|
||||
resultstring += str(item) + '\n'
|
||||
|
||||
with open('output_titles.txt', 'a') as f:
|
||||
f.write(resultstring)
|
||||
|
||||
if __name__ == '__main__':
|
||||
showdict = pharse_shows(input())
|
||||
save_output_keys(showdict)
|
||||
save_output_titles(showdict)
|
Loading…
Reference in New Issue