Aporte muy simple de guardar archivos con python y mdos

Iniciado por tincopasan, 7 Julio 2016, 07:53 AM

0 Miembros y 1 Visitante están viendo este tema.

tincopasan

me ha pasado varias veces que los script solo devuelven cadenas y no hay intervención del usuario, por ejemplo si realizan algún cálculo,muchas cadenas  o fibonacci, más lo cual me preguntaron si esos resultados se pueden guardar en un archivo de texto. Es más que obvio que se puede, pero...
tendría que modificar cada uno de los script con las sentencias ya recontra conocidas.Con los años además de vago me gusta simplificar sin grandes complicaciones así que...
era usuario de dos en sus inicios y pensé o hago un bat (que odio) o uso otro script(imprime.py) y listo!
código de imprime.py
Código (python) [Seleccionar]

import os
import sys
archivo= sys.argv[1]
os.system('python {} > impreso.txt'.format(archivo))


4 líneas y asunto resuelto para siempre en estos casos.
se usa muy fácil: desde la consola de cmd python imprime.py archivoaimprimir.py
Saludos y perdón por esta huevada pero la quice compartir.

Edito:

lo entiendo pero...
1) si le quiero cambiar el nombre al archivo de salida lo hago en el script
2) de tu forma el usuario tendría que pasar 2 argumentos,el nombre del archivo a crear y el nombre del archivo a guardar la salida- es más rápido  con un solo argumento


Dicho sea de paso, creo no entendiste que imprime llama a cualquier archivo que quiera(siempre que no espere la intervención del usuario) y lo mande a un txt sin realizarle ninguna modificación.

peter_lyon

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.