La diferencia entre python os.system, os.popen y subcess.
Este es el método más simple y su proceso de ejecución generará la información de ejecución del comando cmd.
Por ejemplo: print os.system("mkdir test") gt; gt; Salida: 0
Puede ver que el resultado se imprime como 0, lo que significa que la ejecución del comando es exitosa; de lo contrario, significa falla (ejecute el comando nuevamente, resultado: el subdirectorio o archivo de prueba ya existe. 1).
2. Utilice os.popen("cmd")
os.popen() devuelve El objeto es lectura de archivos, puede ver el resultado de su operación read()
Por ejemplo: print os.popen("adb shell ls /sdcard/ || ") e imprima os.popen(" adb shell ls /sdcard/ ||") e imprima os.popen("adb shell ls /sdcard/ ||").findstr aa.png").read() gt ; gt; gt; Salida: aa.png (Si aa.png existe, de lo contrario la salida está vacía)
3. Subproceso ("cmd")
Se recomienda. utilizar módulos de subproceso para reemplazar algunos módulos y funciones antiguos, como: os.system, os.spawn*, os.popen*, etc.
El propósito del módulo de subproceso es iniciar un nuevo. procesar y comunicarse con él. El más comúnmente utilizado es definir la clase Popen, usando Popen se pueden crear procesos e interactuar con procesos complejos. El prototipo de función es:
classsubprocess.Popen(args, bufsize=0. , ejecutable=Ninguno, stdin=Ninguno, stdout=Ninguno, stderr=Ninguno, preexec_fn=Ninguno, close_fds=False, shell=False, cwd=Ninguno, env=Ninguno, universal_newlines=False, startupinfo=Ninguno, Creationflags=0)
Popen es muy poderoso y admite una variedad de parámetros y modos, esto se puede ver en su constructor.
El constructor de Popen admite una gran cantidad de parámetros. La función es que es un método de bloqueo y producirá una gran cantidad de contenido si ejecuta un comando cmd. Esta función tiende a bloquear. Otro punto es que el método Popen no imprime la información de ejecución de cmd. p> La siguiente es una lista de parámetros comunes:
args: este parámetro debe ser una cadena o una lista de miembros de cadena. Si es una lista de cadenas, el primer miembro es la ruta y el nombre del programa que se ejecutará; el segundo y último miembro son los parámetros que se ingresarán al ejecutar el programa. Esto es lo mismo que popen.
bufsize: Suele usarse menos y se puede omitir.
Archivo ejecutable: Especifica el programa a ejecutar. Rara vez se usa porque el programa a ejecutar ya está especificado en args. stdin, stdout?, stderr: representa la entrada estándar, la salida estándar y el procesamiento de errores estándar del programa. Los valores disponibles son PIPE, un objeto de archivo abierto existente, y NINGUNO. Si stdout es un objeto de archivo, asegúrese de que el objeto de archivo esté abierto.
shell: Los parámetros del shell dependen del comando a ejecutar.
Si el parámetro de shell está establecido en True, el ejecutable especifica el shell utilizado por el programa. En los sistemas Windows, el shell predeterminado lo especifica la variable de entorno COMSPEC.