Если вы знаете, какие сообщения об ошибках ожидать, тогда один ответ должен передать subprocess.STDOUT
аргументу stderr
Popen
, чтобы ваши сообщения stderr были в потоке stdout:
proc = subprocess.Popen('ll'.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for i in proc.stdout:
print(i)
# check for error message strings and do something with them
Или, если вам не нужны сообщения stdout, просто переберите stderr:
dnull = open(os.devnull, 'w')
proc = subprocess.Popen('ll'.split(), stdout=dnull, stderr=subprocess.PIPE)
for i in proc.stderr:
print(i)
# check for error message strings and do something with them