如何从 django 打开子目录内的终端

如何从 django 打开子目录内的终端

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

我想打开一个新的终端并在其中执行命令。这是我用来执行此操作的代码。

run(["gnome-terminal", "--", "sh", "-c", f"espeak -ven+m1 -f {file_name.name} -w {fbh}.wav "])

我已经将上述代码写入了 views.py 文件中。这里,{file_name.name}是我从用户那里获取的输入文本文件的名称{fbh},也是生成的音频文件的名称。

一切都运行正常,但问题是终端在auto_generation目录中打开并在那里执行代码,espeak -ven+m1 -f {file_name.name} -w {fbh}.wav但我希望它应该在media目录中打开并在那里执行代码。media是目录的子目录 auto_generation

有人可以建议我应该对上述命令做哪些更改,以便新终端在media目录而不是auto_generation目录中打开吗?

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

答案1

  • Django 是一个 Web 框架,它不应该调用类似的 GUI 工具gnome-terminal

    直接使用python-espeak或调用,espeak无需任何 shell 模拟器。

  • 您可以包含带有文件名的路径或使用 Python 函数来更改目录或使用cd ...; speakshell 命令。

相关内容