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