Foros Python
Direccionar la salida de una función hacia un archivo. - Versión para impresión

+- Foros Python (https://foro.recursospython.com)
+-- Foro: Desarrollo (https://foro.recursospython.com/forumdisplay.php?fid=1)
+--- Foro: General (https://foro.recursospython.com/forumdisplay.php?fid=9)
+--- Tema: Direccionar la salida de una función hacia un archivo. (/showthread.php?tid=144)



Direccionar la salida de una función hacia un archivo. - Antares7 - 05-04-2018

Hola
Me podríais orientar como se puede direccionar la salida de una función python en la consola hacia un archivo para guardar toda la salida.
Por ejemplo dir(os) > archivo.txt
gracias


RE: Direccionar la salida de una función hacia un archivo. - calvicius - 06-04-2018

hola,

por ejemplo:


Código:
import os, sys

codificacion_fich = sys.getfilesystemencoding()

with open("salida.txt", "a", encoding=codificacion_fich) as a:
   for path, subdirs, fichs in os.walk('E:\\'):
       for nom_fich in fichs:
           f = os.path.join(path, nom_fich)
           a.write(str(f) + os.linesep)
Edito:
Para usar los comandos -en genérico- del SO, podemos usar el modulo subprocess. Por. Ejemplo:

Código:
import subprocess

with open("salida1.txt","a") as stdout:
   subprocess.Popen(
       #['/bin/sh', '-c', args[0], args[1], ...], # es una lista con el comando y sus posibles argumentos
       ['dir', 'E:\\'],
       shell=True,   # depende del sistema. Por defecto creo que es False. ¿Problema seguridad?
       # https://docs.python.org/2/library/subprocess.html#subprocess.Popen
       stdout=stdout,
       stderr=stdout)