我正在使用 pyttsx3 API。我在 for 循环中创建文件名并添加 mp3 扩展名。保存文件时,它们没有 mp3 扩展名

I am using the pyttsx3 API. I am creating filenames in for loop and adding mp3 extension. While files are saving, they are without the mp3 extension

本质上,我正在遍历列表并希望为列表中的每个元素保存一个 mp3 文件。每个元素的文件基本上是读出列表元素。它将保存的名称是它读取的文本 + mp3 扩展名。

textSpeech 来自 pyttsx3 模块。我通过转到终端并输入 pip install pyttsx3 在 Pycharm 中安装了它。

这是我的代码,只显示了 for 循环部分。

import pyttsx3
textSpeech = pyttsx3.init()    
for x in dialogueColumns:
    words = df[x].values.tolist()
    for j in range(6, len(words)):
        name = "Step " + str(first[j]) + ": " + words[5] + ".mp3"
        textSpeech.save_to_file(words[j], name)
        textSpeech.runAndWait()

我这里有一个示例,它基本上复制了我需要的内容:

 import pyttsx3
 textSpeech = pyttsx3.init()    
 names = ["this", "is", "a", "list", "of", "file", "names"]
 for index in range(0, len(names)):
     fileName = names[index] + ".mp3"
     # In the below line, the first input is the text to be spoken
     # the second input is the file name with the mp3 extension
     textSpeech.save_to_file(names[index], fileName)
     textSpeech.runAndWait()

您的问题不在代码中,而是在您的 Windows 资源管理器的配置中。

打开 Windows 文件资源管理器,select ViewOptions,select View 选项卡,找到选项 Hide extensions for known file types 并确保未选中它。否则取消选中它 select OK.

重新运行您的脚本,您可能会发现您正在编写的文件确实具有 mp3 扩展名。

您的代码的问题很简单:不仅文件名中有一个 space(在大多数情况下应该没问题),而且那里还有一个冒号,这是不允许的。

name = "Step " + str(first[j]) + ": " + words[5] + ".mp3"