在python中运行到/dev/null的进程

在python中运行到/dev/null的进程,python,linux,Python,Linux,如何在Python中运行以下内容 /some/path/and/exec arg > /dev/null 我明白了: call(["/some/path/and/exec","arg"]) 如何将exec进程的输出插入/dev/null,并像往常一样保持python进程的打印输出?与中一样,对于Python 3.3及更高版本,不要将所有内容重定向到stdout?,只需使用: 请注意,这会重定向stdout和stderr。如果您只想重定向stdout(正如您的sh行所暗示的那样),请省略

如何在Python中运行以下内容

/some/path/and/exec arg > /dev/null
我明白了:

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

如何将
exec
进程的输出插入
/dev/null
,并像往常一样保持python进程的打印输出?与中一样,对于Python 3.3及更高版本,不要将所有内容重定向到stdout?

,只需使用:

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

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

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


在2.4版本之前,没有
子流程
模块,因此这是您可以合理追溯到的最早的模块。

非常感谢……但是如果我使用2.7解决方案,它是否仍然适用于3.x?@user1432779:是的。我将在中输入完整的兼容性详细信息。谢谢..但我想我有一个问题..我正在尝试在服务器上编写一个脚本来启动另一台服务器..但是当我在进程上通过shell运行它时,几秒钟后我得到了:Exception AttributeError:“'Popen'对象在忽略的{ans:0}中没有属性'child_created'”@用户1432779:我不明白你在说什么。“当我在进程上通过shell运行它”是什么意思?如果你有一个新问题很难在评论中解释,那么创建一个新问题,或者编辑你现有的问题。服务器外壳很抱歉,你在
sh
中的意思可能是
/dev/null
,而不是
,它将重定向
stdin
,而不是
stdout
call(["/some/path/and/exec","arg"], stdout=DEVNULL, stderr=DEVNULL)
with open(os.devnull, 'w') as devnull:
    call(["/some/path/and/exec","arg"], stdout=devnull, stderr=devnull)
devnull = open(os.devnull, 'w')
try:
    call(["/some/path/and/exec","arg"], stdout=devnull, stderr=devnull)
finally:
    devnull.close()