You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python从netsh wlan show interface结果中提取SSID

提取netsh输出中的SSID及网络信息

你的现有代码已经能获取到命令输出,接下来可以通过字符串解析或正则表达式提取目标信息到变量中,以下是两种实用方案:

方案1:逐行分割解析(适配固定格式)

netsh的输出以键值对形式排列,我们可以遍历每行内容拆分出键和值:

import subprocess

# 执行命令并获取输出
result = subprocess.run(['netsh', 'wlan', 'show', 'interface'], capture_output=True, text=True)
output = result.stdout

# 用字典存储提取到的网络信息
network_info = {}

# 逐行处理输出内容
for line in output.splitlines():
    # 跳过空行和无冒号的无效行
    if ':' not in line:
        continue
    # 拆分键与值,strip()去除前后多余空格
    key, value = line.split(':', 1)
    network_info[key.strip()] = value.strip()

# 直接通过键名获取目标信息,设置默认值避免未找到时报错
ssid = network_info.get('SSID', '未连接WiFi')
interface_name = network_info.get('Name', '未知接口')
connection_state = network_info.get('State', '未知状态')

print(f"当前SSID: {ssid}")
print(f"接口名称: {interface_name}")
print(f"连接状态: {connection_state}")

方案2:正则表达式匹配(适配格式小变动)

如果担心行分割的稳定性,用正则匹配键值对更灵活:

import subprocess
import re

result = subprocess.run(['netsh', 'wlan', 'show', 'interface'], capture_output=True, text=True)
output = result.stdout

# 匹配"    键名                   : 值"格式的正则规则
pattern = re.compile(r'^\s*(.*?)\s*:\s*(.*)$', re.MULTILINE)
matches = pattern.findall(output)

# 将匹配结果转为字典
network_info = dict(matches)

# 获取SSID信息
ssid = network_info.get('SSID', '未连接WiFi')
print(f"当前SSID: {ssid}")

补充提示

  • 若设备有多个WiFi接口,可将命令改为['netsh', 'wlan', 'show', 'interfaces'](复数形式),再解析每个接口的块信息
  • 未连接WiFi时,SSID字段会显示未连接类内容,用get()方法设置默认值可避免KeyError

内容的提问来源于stack exchange,提问作者user348514

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 11:36:15