如何在python中抑制标准输出警告消息
当尝试使用requests模块在Python中进行API调用时,由于verify被设置为false,我得到一条警告消息打印到stdout。我正在寻找如何从打印到标准输出中抑制这些警告消息。我已经尝试过实现urllib3.disable_warnings()函数来实现这一点,但没有成功。任何指针都是正确的如何在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
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
该上下文中的所有内容都将打印到stderrDoesrequests
package它自己的urlib3
-requests.packages.urlib3.disable_warnings()
?我已将此添加到我的代码中,但我相信我使用的上下文是错误的,我正在研究它以及它是如何使用的。requests
包它自己的urlib3
-requests.packages.urlib3.disable_warnings()
?我已经将它添加到我的代码中,但我相信我在错误的上下文中使用了它,我正在研究它以及它的使用方式。