如何将os.system('cat / var / log / dmesg')复制到变量

时间:2013-02-04 12:56:47

标签: python linux shell

import sys
import os

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

此代码通过运行shell脚本cat /var/log/dmesg来打印文件。但是,它不会复制到日志中。我想在其他地方使用这些数据,或者只打印数据,如打印日志。

我该如何实现?

3 个答案:

答案 0 :(得分:7)

只需自己阅读文件:

with open('/var/log/dmesg') as logf:
    log = logf.read()
print(log)

答案 1 :(得分:1)

要阅读来自子流程的输入,您可以使用 fork (), pipe ()和 exec ()来自 os 模块;或使用子流程模块

答案 2 :(得分:1)

作为一种选择,请看一下IPython。 Interactive Python为表格带来了许多易用性工具。

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

调用系统,并将stdout作为字符串列表捕获到变量中。

专为协作科学而设计,也适用于通用Python编码。基于网络的协作笔记本(具有交互式图形,类似于Sage笔记本)也是一个甜蜜的奖励功能,以及对并行计算的无处不在的支持。

http://ipython.org