我无法使用以下代码使用os.remove()删除文件
import pygame
from pygame.mixer import *
import os
from pygame import mixer
def play_music(music_file, volume):
with open(music_file, 'wb') as f:
f.write(spoken_text['AudioStream'].read())
f.close()
mixer.init()
mixer.music.load(music_file)
mixer.music.play()
#pygame.mixer.init()
while pygame.mixer.music.get_busy():
pygame.time.Clock().tick(10)
else:
os.remove(music_file)
music_file = "C:/CBot/output.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:/CBot/output.mp3'
答案 0 :(得分:0)
无法删除该文件,因为您的应用程序当前正在使用它。您必须卸载音乐文件。对您的问题的评论提到您需要致电 pygame.mixer.music.stop()
。这是错误的。请参阅 pygame.mixer.music.stop()
的文档:
如果当前正在播放音乐,则停止播放。它不会卸载音乐。
您必须致电pygame.mixer.music.unload()
:
这会关闭可能加载的任何音乐的文件等资源。
pygame.mixer.music.unload()
os.remove(music_file)