我正在尝试使用python扫描所有可用的wifi设备。我写了下面的代码来获取ssid、bssid和设备信息
results = subprocess.check_output(["sudo", "nmcli", "-f", "SSID", "BSSID", "DEVICE", "dev", "wifi"])
但它给了我一个错误-“bssid不理解”
当我在终端运行下面的命令时,它工作正常。
sudo nmcli -f SSID,BSSID,DEVICE dev wifi
如果我删除bssid和设备,那么它可以正常工作。我得到了所有的SSID
results = subprocess.check_output(["sudo", "nmcli", "-f", "SSID", "dev", "wifi"])
我不明白怎么回事。
我在用
Python-3.6.8
Ubuntu-18.04.2 LTS
最佳答案
你需要把论点作为
["sudo", "nmcli", "-f", "SSID,BSSID,DEVICE", "dev", "wifi"]
如果最后一个命令行真的起作用。注意有一个参数
"SSID,BSSID,DEVICE"
。您还可以使用
shlex
生成列表:import shlex
args = shlex.split("sudo nmcli -f SSID,BSSID,DEVICE dev wifi")
# ['sudo', 'nmcli', '-f', 'SSID,BSSID,DEVICE', 'dev', 'wifi']