Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre python os.system, os.popen y subcess.

La diferencia entre python os.system, os.popen y subcess.

1. Utilice os.system("cmd")

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.