0

所以我学习python一周了,如果这很明显,请道歉,谁能告诉我为什么当我调用以下函数时我只将句子的第一个单词传递给espeak,但它下面的打印命令会打印整个事情?如果我将子进程调用中的 +x 替换为我希望它正常工作的文本,是否有一些我缺少的格式更改,比如以某种方式使我的变量成为字符串?

def speech(text):
    import subprocess
    x = text
    subprocess.call('espeak '+x, shell=True)
    print x

def exit():
    speech("Goodbye Slacker")
4

1 回答 1

0

避免使用shell=True(因为它可能会带来安全风险,并且正确引用文本可能会令人讨厌)。相反,使用shell=False并传递列表中的参数:

subprocess.call(['espeak', x], shell=False)
于 2016-01-26T01:22:23.323 回答