python中接受上一条命令执行的结果----subprocess.check_output()


subprocess.call 是不能作为赋值的,需要用到 subprocess.check_output 函数,而且如果要引用赋值就必须使用subprocess.call(['echo',line])这种形式。

实例一、

对于纯字符串操作如下:

In [42]: import subprocess

In [101]: subprocess.call(['kubectl','get','nodes'])                                                                                 
NAME      STATUS    ROLES     AGE       VERSION
test2     Ready     node      2d        v1.11.0

In [42]: output=subprocess.check_output(["kubectl get nodes | grep test2 | awk '{print $1}'"], shell=True)                              

In [43]: name=output.decode('utf8').strip()                                                                                          

In [44]: print(line)                                                                                                                 
test2

In [83]:                                                                                              
test2

In [102]: subprocess.call(['kubectl','label','nodes',name,'node-role.kubernetes.io/node='])
 

实例二、

对于数字操作如下:

In [6]: import subprocess                                                                                                            

In [7]: output=subprocess.check_output(["head -c 16 /dev/urandom | od -An -t x | tr -d ' '"], shell=True)                            

In [8]: print(output)                                                                                                                
b'd3f4e95e05dfe34ea87217a55fb75bac\n'

In [9]: token=str(output.decode('utf8').strip()).strip('b')                                                                          

In [10]: print(token)                                                                                                                
d3f4e95e05dfe34ea87217a55fb75bac

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM