gpt4 book ai didi

python subprocess.popen 进入无限循环

转载 作者:行者123 更新时间:2023-12-01 06:12:19 24 4
gpt4 key购买 nike

我正在尝试在子进程上运行以下命令并收集输出。

nmap -n -PN -sT -T4  -p 445,139 10.11.1.0/24 --exclude matrix

这个命令返回一个错误,这对我来说没问题。

问题是当我像这样从 python 中执行此操作时:

import subprocess
nmap_process = subprocess.Popen(command, stdout=subprocess.PIPE,stderr=subprocess.PIPE)
output,errOutput=nmap_process.communicate()

进程挂起。
如果我不使用 stderr 参数,则 namp 的第一个错误行将在无限循环中打印

有人对如何处理这个问题有任何意见吗?

最佳答案

import subprocess
cmd = "nmap -n -PN -sT -T4 -p 445,139 10.11.1.0/24 --exclude matrix"
pro = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
pro.communicate() #[0] is stdout [1] is stderr :P

self.nmap_process.communicate() 似乎是你的问题。你是在类里面创建这个吗?我们可以看到更多的代码吗?此外,当我在相同的代码中运行 nmap stderr cmd 时,我的代码不会挂起,并且它不会无限循环。

关于python subprocess.popen 进入无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5152230/

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