如何在新终端窗口中运行 Python 命令

如何在新终端窗口中运行 Python 命令

我正在学习django。我被这个问题困扰了。

所以基本上,我设计了一个 HTML 表单(模板),它以文本文件作为输入并生成该文本文件的画外音。我espeak在后端使用它。因此,当用户上传文件时,此命令(espeak -ven+m1 -f sample.txt其中sample.txt是上传文件的名称)应在新的终端窗口中运行。

示例输出

正如您在上图中所看到的,这就是我想要实现的目标。

espeak -ven+m1 -f sample.txt

我想在新的终端窗口中打印上面这一行。

这里sample.txt是文本文件的名称。我想通过 python 程序来实现这一点,而不是手动完成。

正如我已经说过的,我是 django 的新手,如果能得到一些帮助我将非常感激。

编辑:
我尝试运行此命令

subprocess.run(['gnome-terminal', '--', f"espeak -ven+m1 -f {uploaded_file.name}"])

但我得到的输出是这样的

There was an error creating the child process for this terminal
Failed to execute child process “espeak -ven+m1 -f sample.txt” (No such file or directory)

新的 shell 输出

另请注意,Run a custom command instead of my shell复选框是取消勾选

答案1

您可以使用此命令打开一个新终端并在其中运行您的命令:

gnome-terminal -x sh -c "python3; bash"

python3是我正在运行的命令,您可以用您的命令替换它:

gnome-terminal -x sh -c "espeak -ven+m1 -f sample.txt; bash"

现在总结一下,在你的 Python 程序中使用这段代码:

from subprocess import call
call(["gnome-terminal", "-x", "sh", "-c", "espeak -ven+m1 -f sample.txt; bash"])

注意:如果您使用任何其他终端仿真器,则必须gnome-terminal用您的仿真器替换。

欲了解更多信息,请访问关联

相关内容