如何使 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"])
我正在使用子进程获取命令的输出,运行执行该命令通常需要大约 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"])