Sorry, I posted the wrong code. That code is from when i was trying to use Pyglet instead of Pygame to open the file and see if that would work This is the actual code.
import os import time import sys import getpass import pip import imp from contextlib import contextmanager my_file = "Text To Speech.mp3" username = getpass.getuser() @contextmanager def suppress_output(): with open(os.devnull, "w") as devnull: old_stdout = sys.stdout sys.stdout = devnull try: yield finally: sys.stdout = old_stdout def check_and_remove_file(): active = pygame.mixer.get_init() if active != None: pygame.mixer.music.stop() pygame.mixer.quit() pygame.quit() if os.path.isfile(my_file): os.remove(my_file) def wait_for_it(audio_length, greater_than, less_than, time_to_wait): if (audio_length) >= (greater_than) and (audio_length) < (less_than): time.sleep((audio_length) + (time_to_wait)) def exiting(): check_and_remove_file() print("\nGoodbye!") sys.exit() def input_for_tts(message): try: tts = gTTS(text = input(message)) tts.save('Text To Speech.mp3') audio = MP3(my_file) audio_length = audio.info.length try: pygame.mixer.init() except pygame.error: print("\nSorry, no audio device was detected. The code cannot complete.") exiting() pygame.mixer.music.load(my_file) pygame.mixer.music.play() wait_for_it(audio_length, 0, 15, 1) wait_for_it(audio_length, 15, 30, 2) wait_for_it(audio_length, 30, 45, 3) wait_for_it(audio_length, 45, 60, 4) wait_for_it(audio_length, 60, 75, 5) wait_for_it(audio_length, 75, 90, 6) wait_for_it(audio_length, 90, 105, 7) wait_for_it(audio_length, 105, 120, 8) wait_for_it(audio_length, 120, 135, 9) wait_for_it(audio_length, 135, 150, 10) wait_for_it(audio_length, 150, 165, 11) wait_for_it(audio_length, 165, 180, 12) if audio_length >= 180: time.sleep((audio_length) + 15) try: check_and_remove_file() except PermissionError: imp.reload(pygame) check_and_remove_file() except KeyboardInterrupt: exiting() with suppress_output(): pkgs = ['mutagen', 'gTTS', 'pygame'] for package in pkgs: if package not in pip.get_installed_distributions(): pip.main(['install', package]) import pygame from pygame.locals import * from gtts import gTTS from mutagen.mp3 import MP3 check_and_remove_file() input_for_tts("Hello there " + username + ". This program is\nused to output the user's input as speech.\nPlease input something for the program to say: ") while True: try: answer = input("\nDo you want to repeat? ").strip().lower() if answer in ["n", "no", "nah", "nay", "course not", "don't", "dont", "not"] or "no" in answer or "nah" in answer or "nay" in answer or "course not" in answer or "don't" in answer or "dont" in answer or "not" in answer: exiting() elif answer in ["y", "yes", "yeah", "course", "ye", "yea", "yh", "do"] or "yes" in answer or "yeah" in answer or "course" in answer or "ye" in answer or "yea" in answer or "yh" in answer or "do" in answer: input_for_tts("\nPlease input something for the program to say: ") else: print("\nSorry, I didn't understand that. Please try again with yes or no.") except KeyboardInterrupt: exiting() -- View this message in context: http://pygame-users.25799.x6.nabble.com/Pygame-doesn-t-close-properly-so-I-can-t-delete-the-file-it-s-using-tp3044p3057.html Sent from the pygame-users mailing list archive at Nabble.com.