Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中抑制标准输出警告消息_Python_Python 2.7 - Fatal编程技术网

如何在python中抑制标准输出警告消息

如何在python中抑制标准输出警告消息,python,python-2.7,Python,Python 2.7,当尝试使用requests模块在Python中进行API调用时,由于verify被设置为false,我得到一条警告消息打印到stdout。我正在寻找如何从打印到标准输出中抑制这些警告消息。我已经尝试过实现urllib3.disable_warnings()函数来实现这一点,但没有成功。任何指针都是正确的 import urllib3 import requests HOSTNAME = "https://website.example.com" ADMIN = "admin" PW = "pa

当尝试使用requests模块在Python中进行API调用时,由于verify被设置为false,我得到一条警告消息打印到stdout。我正在寻找如何从打印到标准输出中抑制这些警告消息。我已经尝试过实现urllib3.disable_warnings()函数来实现这一点,但没有成功。任何指针都是正确的

import urllib3
import requests

HOSTNAME = "https://website.example.com"
ADMIN = "admin"
PW = "password"

class ApiCall(object):

    def __init__(self, username=ADMIN, password=PW, url=HOSTNAME, ssl_warnings=False, ssl_verify=False):

    # disable SSL warnings by default
    if not ssl_warnings:
        urllib3.disable_warnings()

    # create requests token to be used across the program
    self.client = requests.Session()
    self.client.auth = (username, password)
    self.client.verify = ssl_verify

def search(self, call=None, name=None):

    ret = self.client.get(HOSTNAME + call)

作为一种传统方法,您可以使用上下文管理器在某些上下文中重定向标准输出:

例如,我将重定向
stdout
stderror

import contextlib
import sys
@contextlib.contextmanager
def redirectOut():
    sout = sys.stdout
    sys.stdout = sys.stderr
    yield
    sys.stdout = sout
然后您可以将其与
一起使用,与
一起使用:

with redirectOut():
    #do your stuff here

该上下文中的所有内容都将打印到stderr

作为一种传统方式,您可以使用上下文管理器在某些上下文中重定向stdout:

例如,我将重定向
stdout
stderror

import contextlib
import sys
@contextlib.contextmanager
def redirectOut():
    sout = sys.stdout
    sys.stdout = sys.stderr
    yield
    sys.stdout = sout
然后您可以将其与
一起使用,与
一起使用:

with redirectOut():
    #do your stuff here

该上下文中的所有内容都将打印到stderr

Does
requests
package它自己的
urlib3
-
requests.packages.urlib3.disable_warnings()
?我已将此添加到我的代码中,但我相信我使用的上下文是错误的,我正在研究它以及它是如何使用的。
requests
包它自己的
urlib3
-
requests.packages.urlib3.disable_warnings()
?我已经将它添加到我的代码中,但我相信我在错误的上下文中使用了它,我正在研究它以及它的使用方式。