我正在尝试从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))