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