2015-09-26 3 views
0

Хотя я новичок в python, я написал список массива, и я хочу распечатать список массивов информации о биосе? как выполнить внешнюю команду в этом скрипте и захватить вывод и проанализировать его.Захват и синтаксический вывод из внешней команды внутри Python

Ниже код Я написал выполнение dmidecode | меньше команд с помощью os.popen() и сохраните его вывод в переменном пакет:

#!/usr/bin/python 
import os 
f = os.popen("dmidecode | less") 
package = f.read() 
print 'Bios Information is:',package 

После выполнения приведенной выше коды: Суд питон sample.py => выход имеет следующий:

BIOS Information 
    Vendor: ***** 
    Version: 1.40 
    Release Date: 09/07/2009 
    ROM Size: 1024 kB 
    Characteristics: 
      PCI is supported 
      BIOS is upgradeable 
      BIOS shadowing is allowed 
      Boot from CD is supported 
      Selectable boot is supported 
      BIOS ROM is socketed 
      EDD is supported 
      Japanese floppy for NEC 9800 1.2 MB is supported (int 13h) 
      Japanese floppy for Toshiba 1.2 MB is supported (int 13h) 
      5.25"/360 kB floppy services are supported (int 13h) 
      5.25"/1.2 MB floppy services are supported (int 13h) 
      3.5"/720 kB floppy services are supported (int 13h) 
      3.5"/2.88 MB floppy services are supported (int 13h) 
      8042 keyboard services are supported (int 9h) 
      CGA/mono video services are supported (int 10h) 
      ACPI is supported 
      USB legacy is supported 
      Targeted content distribution is supported 

Итак, теперь я хочу проанализировать значение: Vendor, Дата выпуска & Версия, которая должна содержать соответствующие значения.

Вопрос в том, что я должен выполнить внешнюю команду в приведенном выше скрипте, захватить вывод и проанализировать его?
Так кто-нибудь может помочь мне выяснить эту проблему?

Помощь меня я просматривать, но ни один документ доступен ...

+0

Лучше дать больше объяснений. Покажите им исходный формат массива и ваши команды (по крайней мере образец) – dhana

+0

вы можете ссылаться на следующую ссылку stackoverflow http://stackoverflow.com/questions/13814428/python-linux-dmidecode-how-to-obtain-hw-info- by-parsing –

+0

Я понятия не имею, что первая программа имеет отношение ко второй программе. –

ответ

0

У вас есть два вопроса. Нанесите только один вопрос на вопрос StackOverflow. Это касается только первого.

Чтобы записать вывод stdout или stderr из программы, вы можете использовать subprocess.check_output().

«Запустить команду с аргументами и вернуть ее выход».

Пример:

import subprocess 

    output = subprocess.check_output("dmidecode") 
    print(output.decode("utf-8")) # Convert from bytes to string 

Если у вас есть выход доступных вы можете задать вопрос, как разобрать его, и то, что вы хотите сделать с проанализированных данных.

+0

У меня есть выход, но я хочу разобрать значения первых трех значений и отображать вывод один за другим. @ Mikko Ohtamaa –

+0

@ rohit_777: для разбора вывода откройте новый вопрос StackOverflow с образцом вывода и то, что вы хотите делать с данными –

Смежные вопросы