При работе с подпроцессами в Python вы можете столкнуться с исключением «subprocess.CalledProcessError», которое указывает на то, что команда, выполненная через модуль подпроцесса, вернула ненулевой код выхода. В этой статье мы рассмотрим конкретное сообщение об ошибке «Команда ‘[’netsh’, ‘wlan’, ‘show’, ‘profiles’]’ вернула ненулевой выход» и предоставим несколько методов для обработки и решения этой проблемы. Мы также добавим примеры кода для иллюстрации каждого метода. Давайте начнем!
Метод 1: добавление аргумента «check=True»
import subprocess
command = ['netsh', 'wlan', 'show', 'profiles']
try:
output = subprocess.check_output(command, universal_newlines=True, check=True)
# Process the output as needed
except subprocess.CalledProcessError as e:
print(f"Command '{e.cmd}' returned non-zero exit code {e.returncode}")
# Handle the error gracefully
Метод 2: использование специальной функции обработки ошибок
import subprocess
def run_command(command):
try:
output = subprocess.check_output(command, universal_newlines=True, check=True)
# Process the output as needed
except subprocess.CalledProcessError as e:
print(f"Command '{e.cmd}' returned non-zero exit code {e.returncode}")
# Handle the error gracefully
command = ['netsh', 'wlan', 'show', 'profiles']
run_command(command)
Метод 3: перенаправление вывода ошибок в файл
import subprocess
command = ['netsh', 'wlan', 'show', 'profiles']
output_file = 'output.txt'
error_file = 'error.txt'
with open(output_file, 'w') as out, open(error_file, 'w') as err:
try:
subprocess.check_call(command, stdout=out, stderr=err)
# Process the output file as needed
except subprocess.CalledProcessError as e:
print(f"Command '{e.cmd}' returned non-zero exit code {e.returncode}")
# Handle the error gracefully
Метод 4. Запуск команды от имени администратора
import subprocess
command = ['netsh', 'wlan', 'show', 'profiles']
try:
output = subprocess.check_output(command, universal_newlines=True, check=True, shell=True)
# Process the output as needed
except subprocess.CalledProcessError as e:
print(f"Command '{e.cmd}' returned non-zero exit code {e.returncode}")
# Handle the error gracefully
Исключение «subprocess.CalledProcessError» может возникнуть при выполнении команд через модуль подпроцесса в Python. В этой статье мы обсудили четыре метода обработки и устранения конкретного сообщения об ошибке «Команда ‘[’netsh’, ‘wlan’, ‘show’, ‘profiles’]’ вернула ненулевой выход». Реализовав эти методы, вы сможете эффективно устранять и обрабатывать эту ошибку в своих сценариях Python. Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям. Приятного кодирования!