Python subprocess.call,而不向控制台写入命令

Python subprocess.call,而不向控制台写入命令,python,subprocess,Python,Subprocess,我目前正在编写一个python程序,其中包含一个部分,它ping目标计算机以查看,如果响应,则更改变量,但当我执行代码时,ping命令会写入控制台(我不希望这样) 我已经检查了ping命令参数,看看是否有什么东西可以让它静音,但找不到任何东西。我能做些什么来阻止命令回显到控制台吗 我的代码如下: if platform.system().lower() == "windows": parameter = "-n" else:

我目前正在编写一个python程序,其中包含一个部分,它ping目标计算机以查看,如果响应,则更改变量,但当我执行代码时,ping命令会写入控制台(我不希望这样)

我已经检查了ping命令参数,看看是否有什么东西可以让它静音,但找不到任何东西。我能做些什么来阻止命令回显到控制台吗

我的代码如下:

if platform.system().lower() == "windows":
        parameter = "-n"
    else:
        parameter = "-c"

    exitCode = subprocess.call(f"ping {parameter} 1 {activeConnections[ip][0]}")
    if (exitCode == 0):
        activeConnections[ip][3] = "T"
activeConnections
是一个字典,如果ping成功,则值将从
“F”
更改为
“T”
您可以使用内置模块的属性:


这是可行的,但您意外地编写了STOUT而不是STDOUT:)
from os import devnull
from subprocess import STDOUT

# Your code

if platform.system().lower() == "windows":
    parameter = "-n"
else:
    parameter = "-c"

with open(devnull) as DEVNULL:
    exitCode = subprocess.call(f"ping {parameter} 1 {activeConnections[ip][0]}", stdout=DEVNULL, stderr=STDOUT))

if (exitCode == 0):
    activeConnections[ip][3] = "T"