如何使 python 子进程 运行 更快

How to make python subprocesses run faster

我正在使用子进程获取命令的输出,运行执行该命令通常需要大约 2 1/2 分钟,但是当 运行 使用子进程时大约需要 35 分钟。

这是有问题的代码:

process = subprocess.Popen(["wpscan --url " + s + " –e u"], stdout=subprocess.PIPE, shell=True)
output = process.communicate()[0]

有没有办法让它 运行 更快?我还不太熟悉使用子流程,所以我可能需要解释。

subprocess 没有什么特别之处可以使生成的进程表现得 slower/differently。

行为上的差异几乎可以肯定是由于您的论点被解释的方式所致。当您以列表形式提供命令时,每个列表项都应该是命令的一部分。您应该利用它而不是尝试通过字符串连接

创建命令组件

例如:

# good
flag_arg = 'Foo' 
subprocess.Popen(['command', '--flag', flag_arg])
#bad
subprocess.Popen(['command --flag' + flag_arg])

这个shell=True也是不必要的。你应该需要的是这样的东西:

Popen(["wpscan", "--url", s, "-e", "u"])