Python程序修正

2024-04-26 11:48:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助,我正试图打开终端,键入ifconfig和输入,然后读取mac上的输出,然后il转换这个稍后到卡利,但我得到了一个错误的文件路径终端,我不能启动它,这是我的代码

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)

Tags: 文件代码import路径终端键入osmac
2条回答

我建议你用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传递给此方法,它将执行命令并为您返回输出

我同意使用subprocess。为了补充阿明的答案,对于这样简单的事情,您只需要输出:

import subprocess

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

编辑:

我在评论中谈到的是新的run函数,它返回一个CompletedProcess类,该类为您保存所有相关信息。这样,您就不必再使用三个不同的变量来保存stdout、sterr和returncode

相关问题 更多 >