2017-08-21 58 views
0

使用check_output函數時出現警告,我無法重定向警告。我認爲stderr只會帶來錯誤,subprocess.check_output不能處理警告(雖然不確定)。任何人都可以建議需要重定向python check_output中的警告

def getSnapshot(volumeName): 
    try: 

     snapID, snapAttach = check_output(["openstack", "volume", "snapshot", "list", "--volume", volumeName, "-c", "Name", "-c", "ID", "-f", "value"]).rstrip().split() 
     myDict['snapshot'] = [snapAttach, snapID] 
    except ValueError: 
     myDict['snapshot'] = None 
    return myDict 

警告類型:

WARNING: openstackclient.common.utils is deprecated and will be removed after Jun 2017. Please use osc_lib.utils. This warning is caused by an out-of-date import in /usr/local/lib/python2.7/dist-packages/heatclient/osc/plugin.py\nIgnoring domain related config project_domain_id because identity API version is 2.0\n 
+0

爲什麼不解決與OpenStack的問題,而不是在你的Python腳本中解決它呢? :D – AK47

+1

它運行在我沒有訪問的其他服務器上。 –

+0

警告應該在'stdin'或'stderr'中。沒有像「stdwarn」這樣的想法。你會在哪裏看到警告? – sauerburger

回答

0

可能適合你想要什麼。 https://docs.python.org/2/library/warnings.html

import warnings 

    def fxn(): 
     warnings.warn("deprecated", DeprecationWarning) 

    with warnings.catch_warnings(): 
     warnings.simplefilter("ignore") 
     fxn() 
+0

這沒有用。我已經嘗試過了。 :( –