python os.system重定向stdout到变量 ,同时获取返回值

简介: Python执行系统命令的方法 os.system(),os.popen(),commands最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类。最开始的时候用 Python 学会了 os.system() 这个方法是很多比如 C,Perl 相似的。

Python执行系统命令的方法 os.system(),os.popen(),commands

最近在做那个测试框架的时候发现 Python 的另一个获得系统执行命令的返回值和输出的类。

最开始的时候用 Python 学会了 os.system() 这个方法是很多比如 C,Perl 相似的。

os.system('cat /proc/cpuinfo')


但是这样是无法获得到输出和返回值的,继续 Google,之后学会了 os.popen()。

output = os.popen('cat /proc/cpuinfo')
print output.read()


通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。但是怎么读取程序执行的返回值呢,当然咯继续请教伟大的 Google(联想到像我这样的人工作如果离开了 Google,不是成了废物。。。Baidu 忽视)。Google 给我指向了 commands — Utilities for running commands
这样通过 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。

(status, output= commands.getstatusoutput('cat /proc/cpuinfo')
print status, output

Python Document 中给的一个例子,很清楚的给出了各方法的返回。

>>import commands
>>> commands.getstatusoutput('ls /bin/ls')
(0'/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
>>> commands.getstatus('/bin/ls')
'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'

 
目录
相关文章
|
8天前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
17 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
5天前
|
测试技术 Python
Python MagicMock: Mock 变量的强大工具
Python MagicMock: Mock 变量的强大工具
23 8
|
5天前
|
存储 C语言 Python
通过 Cython 带你认清 Python 变量的本质
通过 Cython 带你认清 Python 变量的本质
28 8
|
9天前
|
Python
python之os模块
python之os模块
|
6天前
|
移动开发 Unix Linux
30天拿下Python之os模块
30天拿下Python之os模块
|
7天前
|
Python
Python变量用法——单下划线变量名_ 原创
Python变量用法——单下划线变量名_ 原创
22 0
|
7天前
|
Python
Python变量用法——变量解包
Python变量用法——变量解包
18 0
|
2月前
|
Python
|
2月前
|
Python
Python变量的作用域_参数类型_传递过程内存分析
理解Python中的变量作用域、参数类型和参数传递过程,对于编写高效和健壮的代码至关重要。正确的应用这些概念,有助于避免程序中的错误和内存泄漏。通过实践和经验积累,可以更好地理解Python的内存模型,并编写出更优质的代码。
18 2
|
2月前
|
C++ Python
Python笔记2 变量
本文是作者的Python复习笔记第二篇,主要介绍了Python中的变量概念和类型,包括字符串和数字的处理方法。文中通过示例代码讲解了字符串操作(如首字母大写、转大小写、合并、使用制表符和换行符、删除空白、类型转换等)以及数字的基本运算(加减乘除、乘方、求模等)。
28 0
下一篇
无影云桌面