no puedo dejar un comentario a IonicBurger porque no tengo "50 reputación", por lo voy a añadir una nueva entrada. Mis disculpas. os.popen() es la mejor para varios comandos/complicados (mi opinión) y también para conseguir el valor de retorno, además de recibir la salida estándar como los siguientes más complicados varios comandos:
import os
out = [ i.strip() for i in os.popen(r"ls *.py | grep -i '.*file' 2>/dev/null; echo $? ").readlines()]
print " stdout: ", out[:-1]
print "returnValue: ", out[-1]
Esto muestra todos archivos de pitón que tienen la palabra 'archivo' en cualquier parte de su nombre. El [...] es una lista de comprensión para eliminar (quitar) el carácter de nueva línea de cada entrada. ¿El echo $? es un comando de shell para mostrar el estado de retorno del último comando ejecutado que será el comando grep y el último elemento de la lista en este ejemplo. la 2>/dev/null dice para imprimir el stderr del grep comando para /dev/null por lo que no se presenta en la salida. El 'r' antes del 'ls' es utilizar la cadena sin formato para que el shell no interprete los metacaracteres como '*' incorrectamente. Esto funciona en python 2.7. Aquí está el resultado de ejemplo:
stdout: ['fileFilter.py', 'fileProcess.py', 'file_access..py', 'myfile.py']
returnValue: 0
Aunque no hablo del pitón, que va a querer 'popen'. Porque la salida de prueba de un comando es * no * lo mismo que su valor de retorno ... – dmckee
¿qué versión de Python? –
su python 2.6.5 – Rick