gpt4 book ai didi

python - 在python中运行一个进程到/dev/null

转载 作者:太空狗 更新时间:2023-10-29 11:29:51 25 4
gpt4 key购买 nike

如何在 Python 中运行以下命令?

/some/path/and/exec arg > /dev/null

我明白了:

call(["/some/path/and/exec","arg"])

如何将 exec 进程的输出插入到 /dev/null 并像往常一样保持 python 进程的打印输出?比如,不要将所有内容重定向到标准输出?

最佳答案

对于 Python 3.3 及更高版本,只需使用 subprocess.DEVNULL :

call(["/some/path/and/exec","arg"], stdout=DEVNULL, stderr=DEVNULL)

请注意,这会同时重定向 stdoutstderr。如果您只想重定向 stdout(正如您的 sh 行所暗示的那样),请忽略 stderr=DEVNULL 部分。

如果需要兼容旧版本,可以使用os.devnull .因此,这适用于从 2.6 开始的所有内容(包括 3.3):

with open(os.devnull, 'w') as devnull:
call(["/some/path/and/exec","arg"], stdout=devnull, stderr=devnull)

或者,对于 2.4 及更高版本(仍然包括 3.3):

devnull = open(os.devnull, 'w')
try:
call(["/some/path/and/exec","arg"], stdout=devnull, stderr=devnull)
finally:
devnull.close()

在 2.4 之前,没有 subprocess 模块,所以你可以合理地追溯到最远的地方。

关于python - 在python中运行一个进程到/dev/null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14182434/

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