Eso funciona, pero la forma más correcta de hacerlo, es modificando la salida standard a un fichero de tu elección, por ejemplo, pasado por argv[1]:
import sys
sys.stdout = open(sys.argv[1], 'w')
Y ya con eso, cada print irá a ese fichero, al final.
Si quieres que cada vez que se ejecute el script, el fichero se borre, en vez de añadir líneas al final, simplemente abres con la opción "wb" en vez de con "w".
Espero que se haya entendido la idea.
import sys
sys.stdout = open(sys.argv[1], 'w')
Y ya con eso, cada print irá a ese fichero, al final.
Si quieres que cada vez que se ejecute el script, el fichero se borre, en vez de añadir líneas al final, simplemente abres con la opción "wb" en vez de con "w".
Espero que se haya entendido la idea.