Глядя на документы для subprocess.call , я вижу, что у него есть дополнительные параметры:
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
Если вы укажете stdout=
для файла, который вы открыли, то вывод вашего кода будет идти к этому файлу, что в основном такое же поведение?
Я не вижу вашего точного варианта использования, но это, безусловно, способ синтезировать поведение канала командной строки с небольшим изменением кода.
Обратите внимание, что в документах также сказано, что вам не следует использовать встроенную поддержку = PIPE, в зависимости от ваших конкретных требований. Важно, чтобы вы регулярно читали данные из канала, иначе устройство записи остановится, когда буфер заполнится.