我基本上必须使用python脚本运行终端命令。这样做的一般方法是
In [1]: import subprocess
In [2]: subprocess.Popen(['python some-python-script.py'],shell=True)
Out[2]: <subprocess.Popen at 0x103425358>
现在,我的要求是,此脚本将在打印某些输出时被触发n(<= 10)次。我如何确保每次使用python触发时,它都会在 new 终端选项卡中打开并打印输出?
在线检查了两个推荐人并尝试使用
In [11]: os.system("Terminal -x python some-python-script.py")
sh: Terminal: command not found
但没有帮助。
我在OSx Sierra上,但是欢迎使用独立于平台的解决方案!
答案 0 :(得分:0)
您可以通过子流程模块使用check_output。由于您的命令必须执行多次,因此您可以在for
循环内调用该函数。脚本可能看起来像这样(range
的上限可能是可变的):
import subprocess
for idx in range(5):
print(subprocess.check_output(['python3', 'full-path-to-script.py'], encoding='utf-8'))
如文档中所述,check_output
函数将数据作为编码的字节返回,但是由于在我的示例中指定了编码,因此输出将是UTF-8编码字符串。根据您的命令,对文本的解码可能需要单独处理。