Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 13981

I'm getting ValueError: I/O operation on closed file. even though my file should still be open

$
0
0

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.

Viewing all articles
Browse latest Browse all 13981

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>