I'm working through 'Automate the boring stuff with python' and I think I've mostly got this project set up correctly but I'm getting an error that I'm trying to operate on a closed file, but unless I'm misunderstanding something the file should still be open. I haven't closed it and I'm not using a with block.
import randomNUMBER_OF_QUIZZES = 10capitals = {'Alabama': 'Montgomery','Alaska': 'Juneau','Arizona': 'Phoenix','Arkansas': 'Little Rock','California': 'Sacramento','Colorado': 'Denver','Connecticut': 'Hartford','Delaware': 'Dover','Florida': 'Tallahassee','Georgia': 'Atlanta','Hawaii': 'Honolulu','Idaho': 'Boise','Illinios': 'Springfield','Indiana': 'Indianapolis','Iowa': 'Des Monies','Kansas': 'Topeka','Kentucky': 'Frankfort','Louisiana': 'Baton Rouge','Maine': 'Augusta','Maryland': 'Annapolis','Massachusetts': 'Boston','Michigan': 'Lansing','Minnesota': 'St. Paul','Mississippi': 'Jackson','Missouri': 'Jefferson City','Montana': 'Helena','Nebraska': 'Lincoln','Neveda': 'Carson City','New Hampshire': 'Concord','New Jersey': 'Trenton','New Mexico': 'Santa Fe','New York': 'Albany','North Carolina': 'Raleigh','North Dakota': 'Bismarck','Ohio': 'Columbus','Oklahoma': 'Oklahoma City','Oregon': 'Salem','Pennsylvania': 'Harrisburg','Rhoda Island': 'Providence','South Carolina': 'Columbia','South Dakoda': 'Pierre','Tennessee': 'Nashville','Texas': 'Austin','Utah': 'Salt Lake City','Vermont': 'Montpelier','Virginia': 'Richmond','Washington': 'Olympia','West Virginia': 'Charleston','Wisconsin': 'Madison','Wyoming': 'Cheyenne'}# TODO 1: Create the quiz and answer key filesfor quizNum in range(NUMBER_OF_QUIZZES): quiz_file = open(f"capitals_quiz{quizNum + 1}.txt", 'w') answer_key_file = open(f"capitals_quiz_answers{quizNum + 1}.txt", 'w') # TODO 2: Write out the header for the quiz quiz_file.write('Name:\nDate:\n') quiz_file.write(('' * 20) + f"US State Capitals Quiz (Form {quizNum + 1})") quiz_file.write('\n\n') # TODO 3: Shuffle the order of the states states = list(capitals.keys()) random.shuffle(states) # TODO 4: Loop through all 50 states, making a question for each for questionNum in range(50): correctAnswer = capitals[states[questionNum]] wrongAnswers = list(capitals.values()) del wrongAnswers[wrongAnswers.index(correctAnswer)] wrongAnswers = random.sample(wrongAnswers, 3) answerOptions = wrongAnswers + [correctAnswer] random.shuffle(answerOptions) # Write the question and answer options to the quiz file # quiz_file = open(f"capitals_quiz{quizNum + 1}.txt", 'w') # answer_key_file = open(f"capitals_quiz_answers{quizNum + 1}.txt", 'w') quiz_file.write(f'{questionNum + 1}. What is the capital of {states[questionNum]}?\n') for i in range(4): quiz_file.write(f" {'ABCD'[i]}. {answerOptions[i]}\n") quiz_file.write('\n') answer_key_file.write(f"{questionNum + 1}." f"{'ABCD'[answerOptions.index(correctAnswer)]}") quiz_file.close() answer_key_file.close()Traceback (most recent call last): File "/Users/jsnow/PycharmProjects/capitals_quiz/main.py", line 83, in <module> quiz_file.write(f'{questionNum + 1}. What is the capital of {states[questionNum]}?\n')ValueError: I/O operation on closed file.