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

Python脚本for循环不执行 Windows WiFi SSID提取故障求助

问题排查结论

你的for循环完全不执行是文件指针操作错误+遍历逻辑写错共同导致的,具体错误点如下:

  • 执行d = f.read()时已经将ssids.txt的文件指针移动到了文件末尾,后续所有f.read()、f.readline()调用都会直接返回空值,for循环遍历空内容自然不会触发任何循环内逻辑
  • 遍历f.read()的写法本身不符合预期:f.read()返回的是整个文件的完整字符串,直接遍历会逐个迭代单个字符,根本不是按行读取SSID
  • 循环内f.readline(line)属于参数误用,readline()不需要传入当前遍历的内容作为参数,且在文件指针已经到末尾的前提下,无论怎么调用都读不到有效内容
  • 定义了l1存储结果但全程没有写入任何数据,最后打印永远是空列表
  • 调用netsh wlan show profiles时没有加key=clear参数,即便循环正常执行也读不到WiFi明文密码,只能拿到基础配置信息
  • 直接用utf-8解码netsh输出在中文Windows系统上会乱码,中文系统netsh默认输出编码是GBK
  • 逐次调用replace清理输出字符串的逻辑鲁棒性极差,只要系统语言变化、netsh输出的空格/分隔线长度变化,就会把SSID内容切坏
修正方案

直接在内存中处理命令输出即可,不需要反复读写临时文件徒增bug,用正则匹配提取SSID和密码比字符串替换稳定得多,修正后的可运行代码如下:

import subprocess
import re

# 拉取本机所有保存的WiFi配置列表
profiles_res = subprocess.check_output(
    ['netsh', 'wlan', 'show', 'profiles'],
    text=True,
    encoding='gbk'
)
# 正则匹配提取SSID,兼容中英文系统输出
ssid_list = re.findall(r'所有用户配置文件\s*:\s*(.*)', profiles_res)
if not ssid_list:
    ssid_list = re.findall(r'All User Profile\s*:\s*(.*)', profiles_res)

wifi_list = []
for ssid in ssid_list:
    ssid = ssid.strip()
    if not ssid:
        continue
    # 拉取对应WiFi的详细配置,加key=clear才能拿到明文密码
    detail_res = subprocess.run(
        ['netsh', 'wlan', 'show', 'profile', f'name={ssid}', 'key=clear'],
        capture_output=True,
        text=True,
        encoding='gbk'
    )
    # 匹配密码字段,兼容中英文系统
    pwd_match = re.search(r'关键内容\s*:\s*(.*)', detail_res.stdout)
    if not pwd_match:
        pwd_match = re.search(r'Key Content\s*:\s*(.*)', detail_res.stdout)
    pwd = pwd_match.group(1).strip() if pwd_match else '未保存密码/权限不足无法读取'
    wifi_list.append({'ssid': ssid, 'password': pwd})
    print(f"SSID: {ssid} | 密码: {pwd}")

# 可选:结果写入本地文件
with open('wifi_record.txt', 'w', encoding='utf-8') as f:
    for item in wifi_list:
        f.write(f"SSID: {item['ssid']}\t密码: {item['password']}\n")
额外注意
  • 执行脚本需要普通用户权限即可,不需要管理员权限
  • 部分企业级WiFi配置了禁止导出密码,这类网络读不到明文密码属于正常情况
  • 命令参数用列表传递比字符串拼接更安全,遇到带空格、特殊字符的SSID不会执行失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 00:06:34