我想刪除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