【发布时间】:2015-10-30 08:28:06
【问题描述】:
我正在尝试找出如何在 Python 中列出所有可用的无线网络。我使用的是 Windows 8.1。
是否有可以调用或通过库调用的内置函数?
请告诉我打印列表的代码。
【问题讨论】:
-
检查此文件中的scan()函数:github.com/changyuheng/pywinwifi/blob/master/src/winwifi/…
我正在尝试找出如何在 Python 中列出所有可用的无线网络。我使用的是 Windows 8.1。
是否有可以调用或通过库调用的内置函数?
请告诉我打印列表的代码。
【问题讨论】:
你需要subprocess 模块和一个windows命令:
import subprocess
results = subprocess.check_output(["netsh", "wlan", "show", "network"])
获取 SSID 的额外费用。
results = results.decode("ascii") # needed in python 3
results = results.replace("\r","")
ls = results.split("\n")
ls = ls[4:]
ssids = []
x = 0
while x < len(ls):
if x % 5 == 0:
ssids.append(ls[x])
x += 1
print(ssids)
【讨论】:
这是一个古老的问题,但即使在当时,接受的答案也可能更加 Pythonic - 例如,
r = subprocess.run(["netsh", "wlan", "show", "network"], capture_output=True, text=True).stdout
ls = r.split("\n")
ssids = [k for k in ls if 'SSID' in k]
如果您只想在列表中添加 SSID 名称,请将 ssids = 行更改为
ssids = [v.strip() for k,v in (p.split(':') for p in ls if 'SSID' in p)]
【讨论】:
c:\netsh
C:\netsh\wlan
c:\netsh\wlan)Show all
【讨论】: