Computers and Technology

Write a program that first reads in the name of an input file and then reads the input file using the file. readlines() method. The input file contains an unsorted list of number of seasons followed by the corresponding TV show. Your program should put the contents of the input file into a dictionary where the number of seasons are the keys, and a list of TV shows are the values (since multiple shows could have the same number of seasons). Sort the dictionary by key (least to greatest) and output the results to a file named output_keys. txt, separating multiple TV shows associated with the same key with a semicolon (;). Next, sort the dictionary by values (alphabetical order), and output the results to a file named output_titles. txt.
My current code:
def readFile(filename):
dict = {}
with open(filename, 'r') as infile:
lines = infile. readlines()
for index in range(0, len(lines) - 1, 2):
if lines[index].strip()=='':continue count = int(lines[index].strip())
name = lines[index + 1].strip()
if count in dict. keys():
name_list = dict. get(count)
name_list. append(name)
name_list. sort()
else:
dict[count] = [name]
print(count, name)
return dict
def output_keys(dict, filename):
with open(filename,'w+') as outfile:
for key in sorted(dict. keys()):
outfile. write('{}: {}\n'.format(key,'; '.join(dict. get(key
print('{}: {}\n'.format(key,';'.join(dict. get(key
def output_titles(dict, filename):
titles = []
for title in dict. values():
titles. extend(title)
with open(filename,'w+') as outfile:
for title in sorted(titles):
outfile. write('{}\n'.format(title))
print(title)
def main():
filename = input('Enter input file name: ')
dict = readFile(filename)
if dict is None:
print('Error: Invalid file name provided: {}'.format(filename))
return
print(dict)
output_filename_1 ='output_keys. txt'
output_filename_2 ='output_titles. txt'
output_keys(dict, output_filename_1)
output_titles(dict, output_filename_2)

answer
Answers: 3

Other questions on the subject: Computers and Technology

image
Computers and Technology, 21.06.2019 22:00, clairajogriggsk
Signal sets company contracts to deliver one hundred 52-inch plasma high-definition television sets to a new retail customer, tuner tv store, on may 1, with payment to be made on delivery. signal tenders delivery in its own truck. tuner's manager notices that some of the cartons have scrape marks. tuner's owner phones signal's office and asks whether the sets might have been damaged as they were being loaded. signal assures tuner that the sets are in perfect condition. tuner tenders signal a check, which signal refuses, claiming that the first delivery to new customers is always for cash. tuner promises to pay the cash within two days. signal leaves the sets with tuner, which stores them in its warehouse pending its "grand opening sale" on may 15. two days later, tuner's stocker opens some of the cartons and discovers that a number of the sets are damaged beyond ordinary repair. signal claims tuner has accepted the sets and is in breach by not paying on delivery. will signal succeed on these claims? explain.
Answers: 1
image
Computers and Technology, 22.06.2019 06:30, Melissamv2052
Selective incapacitation is a strategy to reduce prison population
Answers: 3
image
Computers and Technology, 22.06.2019 09:30, relic7391
Is a string of code written to hurt others by damaging or destroying
Answers: 1
image
Computers and Technology, 23.06.2019 04:00, coolconnor1234p0sv4p
Another name for addicting games. com
Answers: 1
Do you know the correct answer?
Write a program that first reads in the name of an input file and then reads the input file using th...

Questions in other subjects: