簡體   English   中英

linux命令在python子進程中不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM