Проблема в том, что check_output
не даст выходных данных команды в случае сбоя команды.
Если код возврата был ненулевым, вызывает CalledProcessError. У объекта CalledProcessError будет код возврата в атрибуте returncode и любые выходные данные в атрибуте output.
Поскольку веб-сайт не существует, команда возвращает ошибку, и все, что вы получаете, это python исключение. Если вы все равно хотите получить выходные данные, используйте subprocess.Popen
или subprocess.run
(python 3.5+) с перенаправлением вывода / ошибки.
Также всегда используйте список аргументов, а не строк.
Пример с Popen
handle = subprocess.Popen(["python","../pydig/pydig","@1.1.1.1","+tls=noauth","goowdqdqdqdgle.de","A"], stdout=subprocess.PIPE,stderr=subprocess.PIPE encoding='utf8')
out,err = handle.communicate()
return_code = handle.wait()
print(return_code,out.decode(),err.decode())
обратите внимание, что поскольку команда для запуска является кодом python, вы можете заменить первый аргумент "python"
на sys.executable
(поэтому он работает с тем же интерпретатор как ваш сценарий) или найдите, если невозможно импортировать модуль и вызвать функцию (избегает порождения подпроцесса / сохраняет цепочку исключений)