gpt4 book ai didi

linux - python - 如何将错误重定向到/dev/null?

转载 作者:太空狗 更新时间:2023-10-29 12:10:21 24 4
gpt4 key购买 nike

我在我的 python 脚本中有这个乐趣:

def start_pushdata_server(Logger):
Logger.write_event("Starting pushdata Server..", "INFO")
retcode, stdout, stderr = run_shell(create_shell_command("pushdata-server
start"))

我们想将标准错误从 pushdata-server 二进制文件重定向到/dev/null。

所以我们这样编辑它:

def start_pushdata_server(Logger):
Logger.write_event("Starting pushdata Server..", "INFO")
retcode, stdout, stderr = run_shell(create_shell_command("pushdata-server
start 2>/dev/null"))

但是在 python 代码中添加 2>/dev/null 是无效的。

那么我们如何在 python 代码中发送来自“pushdata-server”的所有错误开始”为空?

最佳答案

添加到在 Unix 或 Linux 中运行的 Python 脚本的代码会将所有 stderr 输出重定向到/dev/null

import os # if you have not already done this
fd = os.open('/dev/null',os.O_WRONLY)
os.dup2(fd,2)

如果您只想对部分代码执行此操作:

import os # if you have not already done this
fd = os.open('/dev/null',os.O_WRONLY)
savefd = os.dup(2)
os.dup2(fd,2)

将 stderr 重定向到这里的代码部分。然后将 stderr 恢复到原来的位置:

os.dup2(savefd,2)

如果您想为标准输出执行此操作,请在 os.dupos.dup2 调用中使用 1 而不是 2 (dup2在执行任何一组 os. 调用之前保持为 dup2) 并刷新标准输出。如果它们与您的代码冲突,请使用不同的名称而不是 fd 和/或 savefd

关于linux - python - 如何将错误重定向到/dev/null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47508964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com