2012-01-25 13 views
5

Estoy escribiendo un script para limpiar mi escritorio, moviendo archivos según el tipo de archivo. El primer paso, al parecer, es ls -1 /Users/user/Desktop (estoy en Mac OSX). Entonces, usando Python, ¿cómo ejecutaría un comando y luego escribiría el resultado en un archivo en un directorio específico? Como esto no estará documentado, y seré el único usuario, no me importa (¿prefiero?) Si usa os.system().escribiendo salida de línea de comando en el archivo

+0

¿Qué archivos desea mover? Eche un vistazo a http://docs.python.org/library/shutil.html para operaciones de archivos usando Python. –

+0

La secuencia de comandos Shell es suficiente para este –

+1

Si utiliza scripts de shell, lea más acerca de pipes y la redirección. –

Respuesta

13

Puede redirigir la salida estándar a cualquier archivo usando > en el comando.

$ ls /Users/user/Desktop > out.txt 

usando Python,

os.system('ls /Users/user/Desktop > out.txt') 

Sin embargo, si está utilizando Python entonces en lugar de utilizar ls de comandos que puede utilizar os.listdir para listar todos los archivos en el directorio.

path = '/Users/user/Desktop' 
files = os.listdir(path) 
print files 
+0

Bueno. Gracias. – Daniel

+0

ImportError: Ningún módulo llamado sistema. –

+0

@ Suda.nese ¿Cómo están tratando de importar? ¿Cuál es tu versión de Python? – taskinoor

4

Después rozando la documentación de Python para ejecutar comandos shell y obtener la salida se puede utilizar el módulo de subprocess con el método check_output.

Después de eso, puede escribir fácilmente esa salida en un archivo con las funciones estándar de Python IO: File IO in python.

1

Para abrir un archivo, puede usar el comando f = open(/Path/To/File). La sintaxis es f = open('/Path/To/File', 'type') donde 'tipo' es r para leer, w para escribir y a para anexar. Los comandos para hacer esto son f.read() y f.write('content_to_write'). Para obtener el resultado de un comando de línea de comando, debe usar popen y subproceso en lugar de os.system(). os.system() no devuelve un valor. Puede leer más en popen here.

Cuestiones relacionadas