Python获取WiFi SSID报IndentationError缩进错误的解决方法
问题原因
你遇到的IndentationError: expected an indented block错误由Python语法的强制缩进规则触发,原始代码存在两处语法问题:
- 对应「WiFi存在安全密钥」逻辑的
else:分支下的代码未做缩进,违反Python语法要求 - 密码判空逻辑的
else后缺少英文冒号,会额外触发语法错误
修正后完整代码
import subprocess import re command_output = subprocess.run(["netsh", "wlan", "show", "profiles"], capture_output = True).stdout.decode() profile_names = re.findall("All User Profile : (.*)\r", command_output) wifi_list = list() if len(profile_names) != 0: for name in profile_names: wifi_profile = dict() profile_info = subprocess.run(["netsh", "wlan", "show", "profile", name], capture_output = True).stdout.decode() if re.search("Security key : Absent", profile_info): continue else: wifi_profile["ssid"] = name profile_info_pass = subprocess.run(["netsh", "wlan", "show", "profile", name, "key=clear"], capture_output = True).stdout.decode() password = re.search("Key Content : (.*)\r", profile_info_pass) if password == None: wifi_profile["password"] = None else: wifi_profile["password"] = password[1] wifi_list.append(wifi_profile) for x in range(len(wifi_list)): print(wifi_list[x])
内容的提问来源于stack exchange,提问作者Hassan Ali
相关产品推荐
相关产品推荐

