popen 没有正确转发参数 - Python

popen not forwarding args correctly - Python

我正在使用 Raspbian 并尝试使用 python 和 popen 函数来运行一个非常简单的 cmd。 我对 linuxpython

很陌生
from subprocess import Popen, PIPE
po = Popen(['airmon-ng', 'start wlan0 10'], stdin=PIPE, stdout=PIPE, stderr=PIPE)

proc = Popen(args, stdout=PIPE, stderr=PIPE)
out, err = proc.communicate()
out

returns

'\n\nusage: airmon-ng <start|stop|check> <interface> [channel or frequency]\n\n'

当只运行 airmon-ng 没有参数时,返回的错误消息可以在 popen 函数之外创建,这让我相信 popen没有正确转发 args

您需要正确分隔命令行参数; startwlan010 应分隔命令行参数:

proc = Popen(['airmon-ng', 'start', 'wlan0', '10'],
             stdin=PIPE, stdout=PIPE, stderr=PIPE)
out, err = proc.communicate()
print(out)

问题中的方式就像在shell中调用如下命令:

airmon-ng 'start wlan0 10'

不同于:

airmon-ng start wlan0 10