Python 禁用命令行模块的日志记录
Python disable logging for command line module
我想做的事情看起来很简单,但我找不到实现它的方法。我正在尝试在脚本中使用模块 Pipreqs,但我必须使用 subprocess.call()
,因为 Pipreqs 无法在脚本中使用它。 Pipreqs 使用日志记录来记录信息,我不希望这样。 Pipreqs 也没有安静模式。我尝试使用 logger.setLevel(logging.WARNING)
但由于我通过 subprocess.call()
调用它,它仍然打印信息。我也试过导入 Pipreqs 并将日志记录级别设置为警告,但这也不起作用。有什么办法可以禁用此输出吗?我现在的代码如下:
import subprocess
import logging
import pipreqs
logger = logging.getLogger("pipreqs")
logger.setLevel(logging.WARNING)
subprocess.call(["pipreqs", "--force","/path/to/dir"])
您将无权访问外部进程的记录器。 subprocess 模块确实有禁用输出的标志。
subprocess.call(
["pipreqs", "--force","/path/to/dir"],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)
我想做的事情看起来很简单,但我找不到实现它的方法。我正在尝试在脚本中使用模块 Pipreqs,但我必须使用 subprocess.call()
,因为 Pipreqs 无法在脚本中使用它。 Pipreqs 使用日志记录来记录信息,我不希望这样。 Pipreqs 也没有安静模式。我尝试使用 logger.setLevel(logging.WARNING)
但由于我通过 subprocess.call()
调用它,它仍然打印信息。我也试过导入 Pipreqs 并将日志记录级别设置为警告,但这也不起作用。有什么办法可以禁用此输出吗?我现在的代码如下:
import subprocess
import logging
import pipreqs
logger = logging.getLogger("pipreqs")
logger.setLevel(logging.WARNING)
subprocess.call(["pipreqs", "--force","/path/to/dir"])
您将无权访问外部进程的记录器。 subprocess 模块确实有禁用输出的标志。
subprocess.call(
["pipreqs", "--force","/path/to/dir"],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL
)