将Os.system结果存储在变量中

时间:2011-06-08 09:20:01

标签: python linux variables os.system

大家好,我想知道如何将os.system结果存储在变量

因为我们知道它返回0

所以我想知道我应该怎么做来存储结果

和第二个问题:如何在Linux中获取ip [有人会建议ifconfig],但是ifconfig显示了如此多的结果我只是想知道IP

3 个答案:

答案 0 :(得分:1)

import os
from subprocess import *

def run_cmd(cmd):
        p = Popen(cmd, shell=True, stdout=PIPE)
        output = p.communicate()[0]
        return output

至于第二个问题,请参阅http://www.cyberciti.biz/tips/read-unixlinux-system-ip-address-in-a-shell-script.html

答案 1 :(得分:1)

因为你的第一个问题是一个python问题,这里是如何使用python在linux中获取IP地址:

import socket
import fcntl
import struct

ifname='eth0'
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = socket.inet_ntoa(fcntl.ioctl(
                    s.fileno(),
                    0x8915,  # SIOCGIFADDR
                    struct.pack('256s', ifname[:15])
                    )[20:24])

答案 2 :(得分:0)

您好您可以创建Subprocess.pipe并可以打印ifconfig的输出 这是Ref:

的代码
import os
import subprocess
from subprocess import *
subprocess.call(["ifconfig","en0”])
p=subprocess.Popen(["ifconfig","en0"],stdout=subprocess.PIPE)
for line in p.stdout:
    print line