gpt4 book ai didi

Python 并行子进程命令同时抑制输出

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:50 26 4
gpt4 key购买 nike

我正在 python 中使用 ping 进行简单的 ip 扫描。我可以并行运行命令,如 this 中所示回答。但是,我无法抑制输出,因为它使用 Popen ,而且我不能使用 check_output因为如果主机在某个 ip 地址关闭,则进程返回退出状态 2,大多数地址都是这种情况。使用 Pipe 也是不可能的,因为同时运行的进程太多。

有没有办法在抑制输出的同时在 python 中同时运行这些子进程?这是我的代码供引用:

def ICMP_scan(root_ip):
host_list = []
cmds = [('ping', '-c', '1', (root_ip + str(block))) for block in range(0,256)]
try:
res = [subprocess.Popen(cmd) for cmd in cmds]
for p in res:
p.wait()
except Exception as e:
print(e)

最佳答案

如何将进程输出通过管道传输到 /dev/null

基于this answer :

import os

devnull = open(os.devnull, 'w')

subproc = subprocess.Popen(cmd, stdout=devnull, stderr=devnull)

关于Python 并行子进程命令同时抑制输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57740338/

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