Python程序更正

时间:2016-10-04 23:25:53

标签: python macos terminal filepath

我需要帮助我正在尝试打开终端并键入ifconfig并输入然后在mac上读取输出然后il转换到后来kali但是我收到错误的文件路径到终端而我无法启动它,这是我的代码。

import os,sys

#opens terminal

terminal = os.open('/Applications/Utilities/Terminal.app', os.O_RDWR|os.O_APPEND)

#writes ifconfig

os.write(terminal, 'ifconfig')

os.close(terminal)

2 个答案:

答案 0 :(得分:1)

我建议您使用subprocess

import subprocess

def popen(executable):
    sb = subprocess.Popen(
        '%s' % executable,
        shell=True,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        universal_newlines=True,
    )
    stdout, stderr = sb.communicate()
    return stdout, stderr, sb.returncode

你可以将ifconfig传递给这个方法,它会执行命令并为你返回输出。

答案 1 :(得分:1)

我同意使用subprocess。要添加到Amin的答案,对于这个简单的事情,您只需要输出:

import subprocess

print(subprocess.check_output(['ifconfig']))

编辑:

我在评论中谈到的是新的run函数,它返回一个CompletedProcess类,其中包含所有相关信息。这样你就不再需要有三个不同的变量来保存stdout,sterr和returncode。