在while循环中删除文件

时间:2017-08-31 18:13:54

标签: python

我正在尝试删除while循环中的文件。这是我正在运行的代码

while 1:
    tts = gTTS(text="Hello", lang='en', slow=False)
    tts.save("file.mp3")
    playsound.playsound("file.mp3", True)
    os.remove("file.mp3")

但是,在while循环停止之前,永远不会删除该文件。有没有办法在运行while循环时删除文件?

3 个答案:

答案 0 :(得分:1)

当您致电tts.save("file.mp3")并被os.remove("file.mp3")删除时,会创建一个文件。由于您的while循环不断运行,因此在它被销毁之后就会创建它。这个过程发生得太快,以至于您在观察目录时无法用眼睛看到文件的删除/创建。

答案 1 :(得分:0)

我认为 文件可能被删除了,但是在循环的下一次迭代中它被重新创建而你却没有注意到。尝试重命名文件,以便知道它是否被删除。

我还建议不要进行无限循环。

答案 2 :(得分:0)

提到Vineet JainDayana,您可能正在删除文件,但速度比您看到的要快。

您当然可以自己验证这一点。而不是:

while 1:

您可以使用带有range()的for循环为您的文件生成不同的名称。你会有类似的东西:

from gtts import gTTS
import playsound
import os

for item in range(1, 10):
    tts = gTTS(text="Hello", lang='en', slow=False)
    filename = str(item) + ".mp3"
    tts.save(filename)
    playsound.playsound(filename, True)
    os.remove(filename)

这样,您就可以在文件夹中看到正在创建和删除的文件。