Я пытаюсь вызвать сценарий оболочки на питоне, но он продолжает сообщать об ошибке разрыва канала (результат в порядке, но я не хочу видеть сообщение об ошибке в STDERR ). Я точно определил причину, и ее можно воспроизвести в виде следующего фрагмента:
subprocess.call('cat /dev/zero | head -c 10 | base64', shell=True)
AAAAAAAAAAAAAA==
cat :ошибка записи :Broken pipe
/dev/zero
— бесконечный поток, но head -c 10
только читает 10 байт от него и выход, то cat получит SIGPIPE, потому что пир закрыл канал. Когда я запускаю команду в оболочке, нет сообщения об ошибке сломанной трубы, но почему python показывает это?