сохранить результат Os.system в переменной - PullRequest
2 голосов
/ 08 июня 2011

привет, ребята, мне интересно, как хранить os.system результат в переменной

как мы знаем, это возвращение 0

так что мне интересно, что я должен сделать, чтобы сохранить результат

и второй вопрос: как получить IP в Linux [кто-то предложит ifconfig], но ifconfig покажет так много результатов, что я просто хочу IP

Ответы [ 3 ]

1 голос
/ 08 июня 2011

Так как ваш первый вопрос - это вопрос Python, вот как получить IP-адрес в Linux с помощью Python:

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])
1 голос
/ 08 июня 2011
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

0 голосов
/ 30 марта 2015

Привет. Вы можете создать Subprocess.pipe и распечатать вывод ifconfig. Вот код для ссылки:

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
...