我想删除while循环内的文件。这是我正在运行的代码删除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循环时删除文件?
我想删除while循环内的文件。这是我正在运行的代码删除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循环时删除文件?
当您拨打tts.save("file.mp3")
并删除os.remove("file.mp3")
时,会创建一个文件。由于您的while
循环持续运行,因此在其销毁后立即创建。这个过程发生得如此之快,以至于在观察目录时,您无法用眼睛看到文件的删除/创建。
我认为有可能文件是正在被擦除,但是然后它将在循环的下一次迭代中被重新创建,而不会发现。尝试重命名文件,以便知道它是否被删除。
我也建议不要做无限循环。
由于Vineet Jain和Dayana提到,您可能会删除文件,但速度比您所看到的要快。
您当然可以自己验证一下。相反的:
while 1:
可以使用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)
有了这个,你将能够看到正在创建的文件夹里删除的文件。
你怎么知道文件没有被删除?你是怎么检查的? – litelite
“直到while循环停止才会删除文件”。那么,你处于一个无限的状态,它在删除后重新创建文件 – Wondercricket
因为你一直在用相同的名字重新创建它吗?你怎么知道它没有被删除和重拍? – roganjosh