从python脚本中打开终端+更改目录并执行命令?

t3psigkw  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(195)

我尝试了一种不同的os.system和subprocess命令,但似乎没办法解决这个问题。我可以使用下面的代码从python脚本打开一个新的终端到一个特定的目录:

import subprocess
cmd = "gnome-terminal --working-directory=/home/USERNAME/Documents/Scripts/"
subprocess.Popen(cmd, shell=True)

我有一个bash脚本,其中包含了我所有的命令。有没有办法让我在新打开的终端中自动执行它?

总结一下,这是我的目标:

  • 在script.py从一个终端运行www.example.com时,我希望它在特定目录下打开第二个终端。
  • 在新目录中执行命令。
  • 在同一目录中执行第二个命令。
  • 使终端无限期打开(使其保持打开状态)

如果有人能给我指出正确的方向,我可以尝试实现这一点。
谢谢你,谢谢你

mlmc2os5

mlmc2os51#

我有这段代码来读取终端的输出:

def verbosecmd(command):
    with Popen(
        command, stdout=PIPE, shell=True, stderr=STDOUT, bufsize=1, close_fds=True
    ) as process:
        for line in iter(process.stdout.readline, b""):
            print(line.rstrip().decode("utf-8"))

如果脚本继续执行,只要命令仍在执行,它就不会关闭终端。
关于您的目标,您是否考虑过使用&&

command = ("cd /home/USERNAME/Documents/Scripts/"
           " && first command"
           " && second command"
          )  # NOTE: don't use comma between string and use space before `&&`

相关问题