2016-08-24 120 views
0

我正在研究一個處理Wi-Fi接入點的Python腳本。在腳本中,我調用os.system(「iwlist wlan0 s」)來掃描附近的無線AP。在Python腳本中對Bash命令的輸出重新排序

從每一個我只需要兩條信息:名稱和MAC地址。我可以通過grep輸出來獲取名稱或地址列表,但有沒有辦法將它們排列起來?比如現在,我可以得到:

ESSID: point 1 
ESSID: point 2 
etc, 

,我可以得到

Address: gh:45:df:etc 
Address: ofweiofjw 

但有可能得到以下?

name - address 
name - address 

我在考慮在Bash命令本身或通過在Python腳本中輸出並以某種方式進行編輯。

+0

如何獲得截至目前的輸出? –

+0

告訴我們你試過的東西 –

+0

'os.system(「iwlist wlan0 s」)返回什麼值? –

回答

0
import commands 

a = commands.getstatusoutput("iwlist wlp9s0 s | grep 'ESSID\|Address'|tr -s ' ' | cut -d'-' -f 2") 
for item in a[1].strip().split("Address:"): 
    print('-'.join(item.replace('\n','').strip().split("ESSID:"))) 

返回:

AA:11:DD:44:32:D7 - 「Kolagh_nomap」

BB:22:EE:55:EE:21 - 「BaBaei」

CC:33:FF:66:13:2C - 「ali」

+0

這個工作非常非常非常感謝你,但它弄亂了我的打印機稱爲HP-Print-65-LaserJet 1102的那個。它被列爲AB:CD:EF:GH:IJ:KLPrint。任何想法爲什麼?你也可以解釋這是如何工作的,因爲我想了解而不是盲目編碼別人告訴我的內容。非常感謝 – grinningveil72