Python captura toda la salida impresa

Estoy buscando escribir programas basados en consola en python que puedan ejecutar funciones para realizar tareas genéricas, bastante genéricas. ¿Es posible capturar todo lo escrito en la consola mediante llamadas impresas en una función sin necesidad de devolver una cadena, de forma similar a cómo bash y el shell de Windows permiten canalizar la salida de un programa a un archivo de texto, es decir

ipconfig> ipconfig.txt

pero al hacer esto dentro de un programa de Python, donde se llama a una función, ¿todo lo que se imprimió en la consola dentro de esa función se recopila como una lista de cadenas y luego se puede guardar en un archivo txt de la elección de los usuarios?

Respuestas a la pregunta(1)

Su respuesta a la pregunta