所以我有一个 Raspberry Pi 单元,它设置为检查 gmail 帐户,如果出现新邮件,它会通过节日大声读出。
我通过粗略的'echo "' + str(message) + '" | festival --tts'
调用与 Festival 进行交互,其中消息是传入电子邮件的内容。
我猜有人可能会在该消息中发送一些讨厌的东西并破坏计算机,我想知道是否有一种好方法可以清除消息并使整个过程更安全。
我可以验证电子邮件地址,但即使在经过验证的电子邮件中,我也希望能够进行任何检查。
您是否有理由必须使用 shell 来调用节日?
如果没有,请留在 python 中并为此使用 lib(例如pyfestival),因为这可能更简单,并且您没有将 shell 代码注入消息的风险。
更新:当您想通过单独的进程调用它时,请尝试使用类似的方法(虽然尚未测试)
from subprocess import Popen, PIPE
p = Popen(['festival', '--tts'], stdin=PIPE)
p.communicate(input=message)
以上是该问题答案的定制版本