個人筆記,大佬勿噴
關於介紹,網上一堆,可自行百度
這裏記錄一下popen()接受命令返回值及處理,我想要的值是docker的ID
$ docker ps -q
2d3586a30e7e
03f1ca1331c7
但是使用python調用的時候沒法直接得到這個結果,所以想要獲取這個數據
#導入os這個模塊
In [8]: import os
#使用popen接受docker ps -q這個命令的返回值
In [9]: a = os.popen('docker ps -q')
#先預讀一下,但是每次使用必須重新賦值,不然就沒有了
In [10]: a.read()
Out[10]: '2d3586a30e7e\n03f1ca1331c7\n' #這是個字符串類型
In [11]: a = os.popen('docker ps -q')
#使用換行分割,可以發現,最後多了一個空元素
In [12]: a.read().split('\n')
Out[12]: ['2d3586a30e7e', '03f1ca1331c7', '']
In [13]: a = os.popen('docker ps -q')
#使用readlines讀取可以看到沒有空元素,但是每個元素後有一個換行符
In [14]: a.readlines()
Out[14]: ['2d3586a30e7e\n', '03f1ca1331c7\n']
In [20]: a = os.popen('docker ps -q')
#對數據進行處理,可以得到我們想要的結果
In [21]: b = [i[0:-2] for i in a.readlines()]
In [22]: b
Out[22]: ['2d3586a30e7', '03f1ca1331c']
subprocess這個就比較方便了
In [1]: import subprocess
In [2]: subprocess.getoutput('docker ps -q').split('\n')
Out[2]: ['2d3586a30e7e', '03f1ca1331c7']
可以直接將命令的返回值保存出來,避免了數據處理