import sys
import os

log = os.system('cat /var/log/demesg')

Этот код печатает файл, запустив скрипт оболочки cat /var/log/dmesg. Тем не менее, он не копируется в журнал. Я хочу использовать эти данные в другом месте или просто распечатать данные, как распечатать журнал.

Как я могу это реализовать?

1
Hacker 4 Фев 2013 в 16:56

3 ответа

Лучший ответ

Просто прочитайте файл самостоятельно:

with open('/var/log/dmesg') as logf:
    log = logf.read()
print(log)
7
phihag 4 Фев 2013 в 13:00

Как вариант, взгляните на IPython. Интерактивный Python предлагает множество простых в использовании инструментов.

ipy$ log = !dmesg
ipy$ type(log)
 <3> IPython.utils.text.SList
ipy$ len(log)
 <4> 314

Вызывает систему и записывает стандартный вывод в переменную в виде списка строк.

Создан для совместной науки, удобен для общего программирования на Python. Веб-блокнот для совместной работы (с интерактивным графиком, похожим на блокноты Sage) также является приятной бонусной функцией наряду с повсеместной поддержкой параллельных вычислений.

http://ipython.org

1
Brian Tiffin 4 Фев 2013 в 17:46

Чтобы прочитать входные данные дочернего процесса, вы можете использовать fork (), pipe () и exec () из os < модуль / strong>; или используйте модуль подпроцесс

1
LtWorf 4 Фев 2013 в 13:50