使用python在终端中运行命令行命令

时间:2018-07-20 08:35:58

标签: python python-3.x command-line terminal

我基本上必须使用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上,但是欢迎使用独立于平台的解决方案!

1 个答案:

答案 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编码字符串。根据您的命令,对文本的解码可能需要单独处理。