Python Pygame使用后无法删除.mp3文件

Python Pygame使用后无法删除.mp3文件,python,twitch,Python,Twitch,我问这个问题是因为我正试图创建自己的第一个twitch机器人(新手程序员)。我想做的是,当用户从youtube请求一首歌曲时,我从我正在使用的另一个模块的youtube视频中提取音频,然后使用pygame通过我的程序播放,我唯一的问题是,在播放完歌曲后,我希望将其删除,这样我就不会因为下载用户的所有歌曲请求并将其保存在我的项目文件夹中而浪费电脑空间。唯一的问题是我得到了关于删除另一个进程使用的文件的winerror32 这是我到目前为止开发的代码,我不知道如何关闭文件才能删除它,我尝试在调用函数

我问这个问题是因为我正试图创建自己的第一个twitch机器人(新手程序员)。我想做的是,当用户从youtube请求一首歌曲时,我从我正在使用的另一个模块的youtube视频中提取音频,然后使用pygame通过我的程序播放,我唯一的问题是,在播放完歌曲后,我希望将其删除,这样我就不会因为下载用户的所有歌曲请求并将其保存在我的项目文件夹中而浪费电脑空间。唯一的问题是我得到了关于删除另一个进程使用的文件的winerror32

这是我到目前为止开发的代码,我不知道如何关闭文件才能删除它,我尝试在调用函数后移动音乐文件,但没有成功

import pygame as pg
import os

def play_music(music_file, volume):

freq = 44100
bitsize = -16
channels = 2
buffer = 2048
pg.mixer.init(freq, bitsize, channels, buffer)
pg.mixer.music.set_volume(volume)
clock = pg.time.Clock()

pg.mixer.music.load(music_file)
pg.mixer.music.play()
while pg.mixer.music.get_busy():
    clock.tick(30)
else:
    os.remove(music_file)

music_file = "C:/Users/Devin/PycharmProjects/Fun/Milk.mp3"

volume = 0.4

play_music(music_file, volume)
错误是:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:/Users/Devin/PycharmProjects/Fun/Milk.mp3'

如果您使用的是真实的操作系统(带有引用计数的inode),则不会出现此问题--可以删除文件的目录项,并且只有在实际关闭文件后才能释放磁盘空间。:)第一:修复您的标识。第二:您是否在文件播放结束后关闭它?在
play_music()
的末尾使用
pg.mixer.quit()
。每当我试图直接从PyCharm复制到堆栈溢出时,缩进都会出错。pg.mixer.quit()成功了,非常感谢您的帮助。