[英]linux command is not working in python subprocess
我正在嘗試使用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和DEVICE,則工作正常。 我得到所有的ssids
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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.