如何从 python 代码在新的 shell 窗口上调用 python 脚本



我正在尝试从python代码执行10个python脚本,并在新的shell窗口中打开每个脚本。

我的代码 :

for i in range(10):
    name_of_file = "myscript"+str(i)+".py"
    cmd = "python " + name_of_file
    os.system("gnome-terminal -e 'bash -c " + cmd + "'")

但是每个脚本文件都没有执行,我在新终端中只得到了 python 的实时解释器......

谢谢你们

我建议使用subprocess模块(https://docs.python.org/2/library/subprocess.html)。
这样,您将编写如下内容:

import subprocess
cmd = ['gnome-terminal', '-x', 'bash', '-c']
for i in range(10):
    name_of_file = "myscript"+str(i)+".py"
    your_proc = subprocess.Popen(cmd + ['python %s' % (name_of_file)])
    # or if you want to use the "modern" way of formatting string you can write
    # your_proc = subprocess.Popen(cmd + ['python {}'.format(name_of_file)])
    ...

您可以更好地控制启动的流程。
如果你想继续使用 os.system() ,首先构建你的命令字符串,然后将其传递给函数。在您的情况下是:

cmd = 'gnome-terminal -x bash -c "python {}"'.format(name_of_file)
os.system(cmd)

类似的东西。
感谢@anishsane的一些建议!

我认为这与将参数引用到os.system的字符串有关。试试这个:

os.system("""gnome-terminal -e 'bash -c "{}"'""".format(cmd))

最新更新