欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決python 執(zhí)行shell命令無(wú)法獲取返回值的問(wèn)題

 更新時(shí)間:2020年12月05日 11:29:35   作者:四月的水  
這篇文章主要介紹了解決python 執(zhí)行shell命令無(wú)法獲取返回值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

問(wèn)題背景:利用python獲取服務(wù)器中supervisor狀態(tài)信息時(shí)發(fā)現(xiàn)未能獲取到返回值。

python獲取執(zhí)行shell命令后返回值得幾種方式:

# 1.os模塊
ret = os.popen("supervisorctl status")
ret_data = ret.read()
# 2.subprocess模塊
ret = subprocess.Popen('supervisorctl status',shell=True,stdout=subprocess.PIPE)
out,err = ret.communicate()
# 3.commands模塊
ret_data = commands.getoutput("supervisorctl status")
# commands.getstatusoutput()還可獲取到命令執(zhí)行是否成功狀態(tài)

一開(kāi)始程序使用的是 os.popen() 方法,在交互式python shell或者IDE環(huán)境下使用上述方法都可以獲取到執(zhí)行的返回值,但當(dāng)使用腳本執(zhí)行時(shí)發(fā)現(xiàn)返回值為空,然后修改為使用 command.getoutput() 方法,這時(shí)獲取到返回值為 “sh: supervisorctl: command not found”。

由此可知是執(zhí)行命令時(shí)無(wú)法識(shí)別 supervisorctl 命令,但系統(tǒng)中是已經(jīng)安裝好supervisor的,于是使用 which supervisorctl 查看supervisorctl路徑,以帶路徑的方式執(zhí)行指令 “/usr/local/bin/supervisorctl status”,最后成功獲取到返回值。

總結(jié):

python使用shell命令操作非系統(tǒng)自帶工具時(shí),最好帶上工具路徑。

補(bǔ)充知識(shí):python 如何判斷調(diào)用系統(tǒng)命令是否執(zhí)行成功

首先我們要知道如何調(diào)用系統(tǒng)命令:

>>> os.system('ls')
anaconda-ks.cfg install.log.syslog 模板 圖片 下載 桌面
install.log     公共的           視頻 文檔 音樂(lè)
0
>>>
>>> os.system('lss')
sh: lss: command not found
32512
>>>

\\第一種,我們可以肉眼識(shí)別正確的會(huì)返回0,錯(cuò)誤的則是非0

\\第二種,使用if判斷調(diào)用系統(tǒng)命令返回值是否為0,如為0則不輸出,不為0則輸出 "Without the command"

-------------------錯(cuò)誤-------------------

>>> if os.system('lss') !=0:print 'Without the command'
...
 
sh: lss: command not found
Without the command

-------------------正確-------------------

>>> if os.system('ls') !=0:print 'Without the command'
...
 
anaconda-ks.cfg install.log.syslog 模板 圖片 下載 桌面
install.log     公共的           視頻 文檔 音樂(lè)
>>>

以上這篇解決python 執(zhí)行shell命令無(wú)法獲取返回值的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python with/as使用說(shuō)明

    詳解Python with/as使用說(shuō)明

    這篇文章主要介紹了Python with/as使用說(shuō)明,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python 中的Sympy詳細(xì)使用

    Python 中的Sympy詳細(xì)使用

    這篇文章主要介紹了Python 中的Sympy詳細(xì)使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • python如何保證輸入鍵入數(shù)字的方法

    python如何保證輸入鍵入數(shù)字的方法

    今天小編就為大家分享一篇python如何保證輸入鍵入數(shù)字的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python下劃線命名模式

    Python下劃線命名模式

    下劃線前綴的含義是告知其他程序員:以單個(gè)下劃線開(kāi)頭的變量或方法僅供內(nèi)部使用,該約定在PEP 8中有定義,這篇文章主要介紹了Python下劃線命名模式,需要的朋友可以參考下
    2023-10-10
  • python每隔N秒運(yùn)行指定函數(shù)的方法

    python每隔N秒運(yùn)行指定函數(shù)的方法

    這篇文章主要介紹了python每隔N秒運(yùn)行指定函數(shù)的方法,涉及Python的線程與時(shí)間操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • Python繪制正二十面體圖形示例

    Python繪制正二十面體圖形示例

    正二十面體由20個(gè)小的正三角形面組成,每個(gè)頂點(diǎn)周圍有?5?個(gè)頂點(diǎn),下面這篇文章主要給大家介紹了關(guān)于Python繪制正二十面體圖形的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Python使用win32 COM實(shí)現(xiàn)Excel的寫(xiě)入與保存功能示例

    Python使用win32 COM實(shí)現(xiàn)Excel的寫(xiě)入與保存功能示例

    這篇文章主要介紹了Python使用win32 COM實(shí)現(xiàn)Excel的寫(xiě)入與保存功能,結(jié)合實(shí)例形式分析了Python調(diào)用win32 COM組件針對(duì)Excel文件的讀寫(xiě)與保存相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • Python入門(mén)之模塊和包用法詳解

    Python入門(mén)之模塊和包用法詳解

    這篇文章主要為大家詳細(xì)介紹一下Python中的包與模塊的使用,文中的示例講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-07-07
  • python實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名

    python實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名

    這篇文章主要介紹了python實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名,主要以python怎么快速對(duì)請(qǐng)求體做一次簽名為主題,塑造實(shí)現(xiàn)請(qǐng)求數(shù)據(jù)包簽名過(guò)程,具有一定得參考價(jià)值,需要的小伙伴可以參考一下
    2022-02-02
  • Python字符串的15個(gè)基本操作(小結(jié))

    Python字符串的15個(gè)基本操作(小結(jié))

    這篇文章主要介紹了Python字符串的15個(gè)基本操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評(píng)論