无法在Python中删除.mp3文件

时间:2019-03-20 05:26:30

标签: python-3.x pygame text-to-speech

我无法使用以下代码使用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'

1 个答案:

答案 0 :(得分:0)

无法删除该文件,因为您的应用程序当前正在使用它。您必须卸载音乐文件。对您的问题的评论提到您需要致电 pygame.mixer.music.stop()。这是错误的。请参阅 pygame.mixer.music.stop() 的文档:

<块引用>

如果当前正在播放音乐,则停止播放。它不会卸载音乐。

您必须致电pygame.mixer.music.unload()

<块引用>

这会关闭可能加载的任何音乐的文件等资源。

pygame.mixer.music.unload()
os.remove(music_file)