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

如何用Python提取nmcli输出的WiFi SSID纯名称(不含多余空格)

解决nmcli输出SSID含多余空格的问题

你的问题出在直接替换所有空格,且没处理nmcli的格式化输出——nmcli默认列表输出是对齐排版的,每行前后会有多余空格,还包含表头行。下面给两种可行的处理方式:

方法1:处理原有命令的输出

不用替换所有空格,而是逐行清理空格并过滤无效行:

import subprocess

list_networks_command = 'nmcli -f SSID dev wifi list'
output = subprocess.check_output(list_networks_command, shell=True, text=True)

# 按行分割输出,过滤空行和表头,清理每行前后空格
ssids = [line.strip() for line in output.splitlines() if line.strip() and not line.startswith('SSID')]

# 打印纯SSID列表
for ssid in ssids:
    print(ssid)

方法2:用nmcli的tabular模式(更推荐)

nmcli支持-t参数生成紧凑的表格输出,没有排版用的多余空格,解析起来更简单:

import subprocess

# 使用-t参数生成易解析的输出,-f指定只取SSID字段
list_networks_command = 'nmcli -t -f SSID dev wifi list'
output = subprocess.check_output(list_networks_command, shell=True, text=True)

# 分割行并过滤空行(空行对应隐藏SSID,可按需保留)
ssids = [line for line in output.splitlines() if line]

# 打印结果
for ssid in ssids:
    print(ssid)

简单说明:

  • 方法1通过strip()清理每行前后空格,同时过滤掉表头行和空行,保留纯SSID内容。
  • 方法2的-t参数让nmcli输出更紧凑,直接每行对应一个SSID,避免了排版空格的干扰,处理效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:43:10