我正在学习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 ...; speak
shell 命令。